From 718662c56ef3f8cf81bbe97e88269daefeb3eedc Mon Sep 17 00:00:00 2001 From: bach Date: Mon, 8 Feb 2021 17:07:55 +0100 Subject: [PATCH] app on base domain, api (drupal) on subpath /api --- Docker/{php => api}/Dockerfile | 0 Docker/{php => api}/bashrc | 0 Docker/{php => api}/inputrc | 0 Docker/{php => api}/php-custom.ini | 0 Docker/{php => api}/php-fpm-custom.conf | 0 Docker/{php => api}/rsyslog-drupal.conf | 0 Docker/{php => api}/rsyslog.service | 0 Docker/nginx/Dockerfile | 4 ++ Docker/nginx/default.conf | 70 ++++++++++++++++++++----- Makefile | 6 ++- api | 2 +- docker-compose.yml | 53 ++++++++++--------- 12 files changed, 94 insertions(+), 41 deletions(-) rename Docker/{php => api}/Dockerfile (100%) rename Docker/{php => api}/bashrc (100%) rename Docker/{php => api}/inputrc (100%) rename Docker/{php => api}/php-custom.ini (100%) rename Docker/{php => api}/php-fpm-custom.conf (100%) rename Docker/{php => api}/rsyslog-drupal.conf (100%) rename Docker/{php => api}/rsyslog.service (100%) diff --git a/Docker/php/Dockerfile b/Docker/api/Dockerfile similarity index 100% rename from Docker/php/Dockerfile rename to Docker/api/Dockerfile diff --git a/Docker/php/bashrc b/Docker/api/bashrc similarity index 100% rename from Docker/php/bashrc rename to Docker/api/bashrc diff --git a/Docker/php/inputrc b/Docker/api/inputrc similarity index 100% rename from Docker/php/inputrc rename to Docker/api/inputrc diff --git a/Docker/php/php-custom.ini b/Docker/api/php-custom.ini similarity index 100% rename from Docker/php/php-custom.ini rename to Docker/api/php-custom.ini diff --git a/Docker/php/php-fpm-custom.conf b/Docker/api/php-fpm-custom.conf similarity index 100% rename from Docker/php/php-fpm-custom.conf rename to Docker/api/php-fpm-custom.conf diff --git a/Docker/php/rsyslog-drupal.conf b/Docker/api/rsyslog-drupal.conf similarity index 100% rename from Docker/php/rsyslog-drupal.conf rename to Docker/api/rsyslog-drupal.conf diff --git a/Docker/php/rsyslog.service b/Docker/api/rsyslog.service similarity index 100% rename from Docker/php/rsyslog.service rename to Docker/api/rsyslog.service diff --git a/Docker/nginx/Dockerfile b/Docker/nginx/Dockerfile index aa3e544..aa36a6e 100644 --- a/Docker/nginx/Dockerfile +++ b/Docker/nginx/Dockerfile @@ -1,5 +1,9 @@ FROM nginx:latest +RUN apt-get update \ + && apt-get install -y \ + vim + COPY ./default.conf /etc/nginx/conf.d/default.conf COPY ./bashrc /root/.bashrc COPY ./inputrc /root/.inputrc diff --git a/Docker/nginx/default.conf b/Docker/nginx/default.conf index 0bfb1ac..05b75e1 100644 --- a/Docker/nginx/default.conf +++ b/Docker/nginx/default.conf @@ -1,36 +1,78 @@ +upstream app{ + server app:8988; +} + server { listen 80 default_server; - root /var/www/html/api/src/web; + # root /var/www/html/api/src/web; + # root /var/www/html/app/dist; index index.html index.php; server_name *.enfrancais.fr; charset utf-8; location / { - try_files $uri $uri/ /index.php?$query_string; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + proxy_set_header X-Ssl on; + + proxy_pass http://app; + proxy_redirect off; + } + + # https://serversforhackers.com/c/nginx-php-in-subdirectory + location @api { + rewrite ^/api/(.*)$ /api/index.php; + } + + + location /api { + # rewrite /api/(.*)$ /$1 break; + # root /var/www/html/api/src/web; + alias /var/www/html/api/src/web/; + # index index.php; + # try_files $uri $uri/ /index.php?$query_string; + try_files $uri $uri/ @api; + + error_log /var/log/nginx/api-error.log debug; + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass api:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $request_filename; + fastcgi_intercept_errors off; + fastcgi_buffer_size 16k; + fastcgi_buffers 4 16k; + fastcgi_read_timeout 150; + } + } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log on; - error_log /var/log/nginx/error.log error; + error_log /var/log/nginx/app-error.log error; sendfile off; client_max_body_size 100m; - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass php:9000; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_intercept_errors off; - fastcgi_buffer_size 16k; - fastcgi_buffers 4 16k; - fastcgi_read_timeout 150; - } + # location ~ \.php$ { + # fastcgi_split_path_info ^(.+\.php)(/.+)$; + # fastcgi_pass api:9000; + # fastcgi_index index.php; + # include fastcgi_params; + # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + # fastcgi_intercept_errors off; + # fastcgi_buffer_size 16k; + # fastcgi_buffers 4 16k; + # fastcgi_read_timeout 150; + # } location ~ /\.ht { deny all; diff --git a/Makefile b/Makefile index 05838e5..6fb3d25 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ build: buildnc: docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME) +downbuildup: down build up + up: docker-compose up -d @@ -36,8 +38,8 @@ logs: down: docker-compose down -exec_php: - docker exec -it enfrancais_php_1 bash +exec_api: + docker exec -it enfrancais_api_1 bash exec_app: docker exec -it enfrancais_app_1 sh diff --git a/api b/api index f0966ce..4459a24 160000 --- a/api +++ b/api @@ -1 +1 @@ -Subproject commit f0966cea3f6007c47244141062fda747f062904c +Subproject commit 4459a24dad030224221585015a652caeadc165fe diff --git a/docker-compose.yml b/docker-compose.yml index 224a30c..e0780a3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,8 +27,19 @@ services: ports: - "6389" - php: - build: ./Docker/php/ + phpmyadmin: + image: phpmyadmin/phpmyadmin + ports: + - 8991:80 + networks: + - database + depends_on: + - mysql + environment: + PMA_HOSTS: mysql,mysql-legacy + + api: + build: ./Docker/api/ expose: - 9000 user: ${USER_UID}:${USER_GID} @@ -45,16 +56,20 @@ services: - mysql - redis - phpmyadmin: - image: phpmyadmin/phpmyadmin - ports: - - 8991:80 + app: + build: ./Docker/app + user: ${USER_UID}:${USER_GID} + volumes: + - "${APP_ROOT}:/app" + - npm-user-data:/home/${USER_UNAME} networks: - - database - depends_on: - - mysql + - app + - server + ports: + - 8988:8988 + working_dir: "/app" environment: - PMA_HOSTS: mysql,mysql-legacy + - APP_ENV=dev nginx: build: ./Docker/nginx/ @@ -68,20 +83,9 @@ services: networks: - server depends_on: - - php - - app: - build: ./Docker/app - user: ${USER_UID}:${USER_GID} - volumes: - - "${APP_ROOT}:/app" - - npm-user-data:/home/${USER_UNAME} - ports: - - 8988:8988 - working_dir: "/app" - environment: - - APP_ENV=dev - + - api + - app + # command: [nginx-debug, '-g', 'daemon off;'] volumes: php-user-data: @@ -93,3 +97,4 @@ networks: database: redis: server: + app: