diff --git a/.env.example b/.env.example deleted file mode 100644 index b1ba132e..00000000 --- a/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -WEB_PORT=80 -DB_PORT=3306 -DB_NAME=laravel_local -DB_USER=phper -DB_PASS=secret diff --git a/.github/workflows/laravel-create-project.yml b/.github/workflows/laravel-create-project.yml index 70dafa65..816c0bf3 100644 --- a/.github/workflows/laravel-create-project.yml +++ b/.github/workflows/laravel-create-project.yml @@ -20,7 +20,7 @@ jobs: - name: Create & Start Docker Containers run: | - mkdir backend + mkdir src docker-compose up -d - name: OS Version diff --git a/.github/workflows/laravel-git-clone.yml b/.github/workflows/laravel-git-clone.yml index e93b0383..5cf5dbf1 100644 --- a/.github/workflows/laravel-git-clone.yml +++ b/.github/workflows/laravel-git-clone.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v2 - name: Git Clone Project - run: git clone https://github.com/laravel/laravel.git backend + run: git clone https://github.com/laravel/laravel.git src - name: Docker Version run: docker version diff --git a/Makefile b/Makefile index 0e2bc327..498a366b 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ build: laravel-install: docker compose exec app composer create-project --prefer-dist laravel/laravel . create-project: - mkdir -p backend + mkdir -p src @make build @make up @make laravel-install @@ -37,13 +37,13 @@ stop: docker compose stop down: docker compose down --remove-orphans +down-v: + docker compose down --remove-orphans --volumes restart: @make down @make up destroy: docker compose down --rmi all --volumes --remove-orphans -destroy-volumes: - docker compose down --volumes --remove-orphans ps: docker compose ps logs: @@ -63,7 +63,7 @@ log-db: log-db-watch: docker compose logs --follow db web: - docker compose exec web ash + docker compose exec web bash app: docker compose exec app bash migrate: @@ -94,30 +94,6 @@ cache-clear: docker compose exec app composer clear-cache @make optimize-clear docker compose exec app php artisan event:clear -npm: - @make npm-install -npm-install: - docker compose exec web npm install -npm-dev: - docker compose exec web npm run dev -npm-watch: - docker compose exec web npm run watch -npm-watch-poll: - docker compose exec web npm run watch-poll -npm-hot: - docker compose exec web npm run hot -yarn: - docker compose exec web yarn -yarn-install: - @make yarn -yarn-dev: - docker compose exec web yarn dev -yarn-watch: - docker compose exec web yarn watch -yarn-watch-poll: - docker compose exec web yarn watch-poll -yarn-hot: - docker compose exec web yarn hot db: docker compose exec db bash sql: diff --git a/README.md b/README.md index 73c39d48..e4dfab31 100644 --- a/README.md +++ b/README.md @@ -48,8 +48,7 @@ http://localhost ### web container - Base image - - [nginx](https://hub.docker.com/_/nginx):1.20-alpine - - [node](https://hub.docker.com/_/node):16-alpine + - [nginx](https://hub.docker.com/_/nginx):1.20 ### db container diff --git a/docker-compose.yml b/docker-compose.yml index cb691464..466a21bc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,5 @@ version: "3.9" volumes: - php-fpm-socket: db-store: psysh-store: services: @@ -9,14 +8,9 @@ services: context: . dockerfile: ./infra/docker/php/Dockerfile volumes: - - type: volume - source: php-fpm-socket - target: /var/run/php-fpm - volume: - nocopy: true - type: bind - source: ./backend - target: /work/backend + source: ./src + target: /data - type: volume source: psysh-store target: /root/.config/psysh @@ -26,9 +20,9 @@ services: - DB_CONNECTION=mysql - DB_HOST=db - DB_PORT=3306 - - DB_DATABASE=${DB_NAME:-laravel_local} - - DB_USERNAME=${DB_USER:-phper} - - DB_PASSWORD=${DB_PASS:-secret} + - DB_DATABASE=laravel + - DB_USERNAME=phper + - DB_PASSWORD=secret web: build: @@ -36,18 +30,13 @@ services: dockerfile: ./infra/docker/nginx/Dockerfile ports: - target: 80 - published: ${WEB_PORT:-80} + published: 80 protocol: tcp mode: host volumes: - - type: volume - source: php-fpm-socket - target: /var/run/php-fpm - volume: - nocopy: true - type: bind - source: ./backend - target: /work/backend + source: ./src + target: /data db: build: @@ -55,7 +44,7 @@ services: dockerfile: ./infra/docker/mysql/Dockerfile ports: - target: 3306 - published: ${DB_PORT:-3306} + published: 3306 protocol: tcp mode: host volumes: @@ -65,7 +54,7 @@ services: volume: nocopy: true environment: - - MYSQL_DATABASE=${DB_NAME:-laravel_local} - - MYSQL_USER=${DB_USER:-phper} - - MYSQL_PASSWORD=${DB_PASS:-secret} - - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} + - MYSQL_DATABASE=laravel + - MYSQL_USER=phper + - MYSQL_PASSWORD=secret + - MYSQL_ROOT_PASSWORD=secret diff --git a/infra/docker/mysql/Dockerfile b/infra/docker/mysql/Dockerfile index 3bc8bc12..270066c0 100644 --- a/infra/docker/mysql/Dockerfile +++ b/infra/docker/mysql/Dockerfile @@ -1,5 +1,4 @@ FROM mysql/mysql-server:8.0 -LABEL maintainer="ucan-lab " ENV TZ=UTC diff --git a/infra/docker/nginx/Dockerfile b/infra/docker/nginx/Dockerfile index b1f1e7e8..9d107c93 100644 --- a/infra/docker/nginx/Dockerfile +++ b/infra/docker/nginx/Dockerfile @@ -1,20 +1,7 @@ -FROM node:16-alpine as node -FROM nginx:1.20-alpine -LABEL maintainer="ucan-lab " -SHELL ["/bin/ash", "-oeux", "pipefail", "-c"] +FROM nginx:1.20 -ENV TZ=UTC +WORKDIR /data -RUN apk update && \ - apk add --update --no-cache --virtual=.build-dependencies g++ +ENV TZ=UTC -# node command -COPY --from=node /usr/local/bin /usr/local/bin -# npm command -COPY --from=node /usr/local/lib /usr/local/lib -# yarn command -COPY --from=node /opt /opt -# nginx config file COPY ./infra/docker/nginx/*.conf /etc/nginx/conf.d/ - -WORKDIR /work/backend diff --git a/infra/docker/nginx/default.conf b/infra/docker/nginx/default.conf index cfbdaf62..6f410088 100644 --- a/infra/docker/nginx/default.conf +++ b/infra/docker/nginx/default.conf @@ -4,7 +4,7 @@ error_log /dev/stderr warn; server { listen 80; listen [::]:80; - root /work/backend/public; + root /data/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; @@ -24,7 +24,7 @@ server { error_page 404 /index.php; location ~ \.php$ { - fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; + fastcgi_pass app:9000; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } diff --git a/infra/docker/php/Dockerfile b/infra/docker/php/Dockerfile index c1b31103..21add03e 100644 --- a/infra/docker/php/Dockerfile +++ b/infra/docker/php/Dockerfile @@ -1,6 +1,6 @@ FROM php:8.1-fpm-bullseye -LABEL maintainer="ucan-lab " -SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] + +WORKDIR /data # timezone environment ENV TZ=UTC \ @@ -15,17 +15,13 @@ ENV TZ=UTC \ COPY --from=composer:2.2 /usr/bin/composer /usr/bin/composer RUN apt-get update && \ - apt-get -y install git libicu-dev libonig-dev libzip-dev unzip locales && \ + apt-get -y install --no-install-recommends locales git unzip libzip-dev libicu-dev libonig-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ locale-gen en_US.UTF-8 && \ localedef -f UTF-8 -i en_US en_US.UTF-8 && \ - mkdir /var/run/php-fpm && \ docker-php-ext-install intl pdo_mysql zip bcmath && \ composer config -g process-timeout 3600 && \ composer config -g repos.packagist composer https://packagist.org -COPY ./infra/docker/php/php-fpm.d/zzz-www.conf /usr/local/etc/php-fpm.d/zzz-www.conf -COPY ./infra/docker/php/php.ini /usr/local/etc/php/php.ini - -WORKDIR /work/backend +COPY ./infra/docker/php/*.ini /usr/local/etc/php/ diff --git a/infra/docker/php/php-fpm.d/zzz-www.conf b/infra/docker/php/php-fpm.d/zzz-www.conf deleted file mode 100644 index f208870e..00000000 --- a/infra/docker/php/php-fpm.d/zzz-www.conf +++ /dev/null @@ -1,6 +0,0 @@ -[www] -listen = /var/run/php-fpm/php-fpm.sock -listen.owner = www-data -listen.group = www-data -listen.mode = 0666 -access.log = /dev/stdout