From f1c6f3ddd7ab8d72abe39229afa34312da7e0a51 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:05:53 +0300 Subject: [PATCH 01/11] Adding TODO note to sentry.yaml. --- config/packages/sentry.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/packages/sentry.yaml b/config/packages/sentry.yaml index 0c1c781..1f72eac 100644 --- a/config/packages/sentry.yaml +++ b/config/packages/sentry.yaml @@ -13,6 +13,8 @@ services: - 'Symfony\Component\HttpKernel\Exception\BadRequestHttpException' - 'Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException' + # TODO: update: + # https://docs.sentry.io/platforms/php/guides/symfony/#monolog-integration Sentry\Monolog\Handler: arguments: $hub: '@Sentry\State\HubInterface' -- 2.40.1 From f3cd8cfc00fcb7b74f3d4fc7e484a873c7148409 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:06:34 +0300 Subject: [PATCH 02/11] Removing needless variables from .env. --- .env | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.env b/.env index 8a0b331..467f7e2 100644 --- a/.env +++ b/.env @@ -22,10 +22,6 @@ REDIS_DSN=redis://127.0.0.1:6379/0 SENTRY_DSN= ###< sentry/sentry-symfony ### -# docker-compose -PHP_FPM_PORT=9000 -APP_LOCAL_PATH=/var/www/magnetico-web/current - ###> symfony/mailer ### MAILER_DSN=smtp://localhost MAILER_FROM=no-reply@magnetico-web.tld -- 2.40.1 From 6f6bd4e34f87684ca95c9b645501ee0f0159b5f8 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:07:13 +0300 Subject: [PATCH 03/11] Adding first .drone.yml draft with simple composer build and console run. --- .drone.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..49f054f --- /dev/null +++ b/.drone.yml @@ -0,0 +1,16 @@ +kind: pipeline +type: docker +name: build-app + +steps: + - name: build-deps + image: 'composer:2.3' + environment: + APP_ENV: dev + commands: + - composer install --no-progress --no-interaction --optimize-autoloader + - bin/console about + - 'bin/console lint:container' + - 'bin/console lint:twig' + - 'bin/console lint:container' + - 'bin/console lint:yaml' -- 2.40.1 From 5c8d2b0035e267513733825dab901d2d6a7d395b Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:24:23 +0300 Subject: [PATCH 04/11] Adding Drone badge. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index cfe907a..3c65233 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -[![Codeship Status for skobkin/magnetico-web](https://app.codeship.com/projects/9da4d3e0-57cf-0136-9885-5644a850740d/status?branch=master)](https://app.codeship.com/projects/295041) -[![Total Downloads](https://poser.pugx.org/skobkin/magnetico-web/downloads)](https://packagist.org/packages/skobkin/magnetico-web) +[![Build Status](https://ci.skobk.in/api/badges/skobkin/magnetico-web/status.svg)](https://ci.skobk.in/skobkin/magnetico-web) [![License](https://poser.pugx.org/skobkin/magnetico-web/license)](https://packagist.org/packages/skobkin/magnetico-web) # Magnetico Web PHP -- 2.40.1 From 84cd13f1a69deba818771dededf6768966cdc6e4 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:24:50 +0300 Subject: [PATCH 05/11] Trying to use plugins/docker image to build Docker image. --- .drone.yml | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.drone.yml b/.drone.yml index 49f054f..f5dd508 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,14 +3,25 @@ type: docker name: build-app steps: - - name: build-deps - image: 'composer:2.3' - environment: - APP_ENV: dev - commands: - - composer install --no-progress --no-interaction --optimize-autoloader - - bin/console about - - 'bin/console lint:container' - - 'bin/console lint:twig' - - 'bin/console lint:container' - - 'bin/console lint:yaml' +# TODO: prepare image with necessary extensions +# - name: build-deps +# image: 'composer:2.3' +# environment: +# APP_ENV: dev +# commands: +# - composer install --no-progress --no-interaction --optimize-autoloader +# - bin/console about +# - 'bin/console lint:container' +# - 'bin/console lint:twig' +# - 'bin/console lint:container' +# - 'bin/console lint:yaml' + - name: docker-build + image: plugins/docker + settings: + username: + from_secret: docker_username + password: + from_secret: docker_token + repo: + from_secret: docker_repo + tags: latest -- 2.40.1 From 4b9df22e009f0c84adec0ec5a5e2412cb84526e5 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 02:47:10 +0300 Subject: [PATCH 06/11] Restricting build to 'push' event only. Adding git commit SHA as tag. --- .drone.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index f5dd508..9cf7c39 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,6 +17,11 @@ steps: # - 'bin/console lint:yaml' - name: docker-build image: plugins/docker + when: +# branch: +# - master + event: + - push settings: username: from_secret: docker_username @@ -24,4 +29,6 @@ steps: from_secret: docker_token repo: from_secret: docker_repo - tags: latest + tags: + - latest + - ${DRONE_COMMIT_SHA:0:10} -- 2.40.1 From 1f48c5618a424506073ac09fd2aa17cf80c387da Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 03:00:15 +0300 Subject: [PATCH 07/11] Excluding .git abd some files from Docker image. --- .dockerignore | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 2eda646..a00ea27 100644 --- a/.dockerignore +++ b/.dockerignore @@ -37,4 +37,14 @@ /.web-server-pid # DotEnv -.env.local \ No newline at end of file +.env.local + +# Git files +/.git +/.gitignore + +# Drone config +/.drone.yml + +# Docker Ignore +/.dockerignore -- 2.40.1 From 037ef170f6dc1001345bfe94b25d4330369d1337 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 03:03:14 +0300 Subject: [PATCH 08/11] Adding link to plugins/docker configuration docs. --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 9cf7c39..b137ecc 100644 --- a/.drone.yml +++ b/.drone.yml @@ -16,6 +16,7 @@ steps: # - 'bin/console lint:container' # - 'bin/console lint:yaml' - name: docker-build + # https://github.com/drone/drone-plugin-index/blob/main/plugins/docker/original.md image: plugins/docker when: # branch: -- 2.40.1 From 3b5979c44a2059bf3ac4ae39b9d4e751e4c58eb5 Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 03:16:23 +0300 Subject: [PATCH 09/11] Image build only for 'master' branch. --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index b137ecc..0d615a9 100644 --- a/.drone.yml +++ b/.drone.yml @@ -19,8 +19,8 @@ steps: # https://github.com/drone/drone-plugin-index/blob/main/plugins/docker/original.md image: plugins/docker when: -# branch: -# - master + branch: + - master event: - push settings: -- 2.40.1 From 2568747991d061c23fa2ff248dea4b6c9decbe4f Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 03:31:14 +0300 Subject: [PATCH 10/11] Removing docker-compose.yml and adding Compose example to the README.md. --- README.md | 62 +++++++++++++++++++++++++++++++++++++++++++++- docker-compose.yml | 22 ---------------- 2 files changed, 61 insertions(+), 23 deletions(-) delete mode 100644 docker-compose.yml diff --git a/README.md b/README.md index 3c65233..69e0593 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ php bin/console invite:add echo 'APP_ENV=dev > .env.local' ``` -## Running in [RoadRunner](https://roadrunner.dev) +## Running using [RoadRunner](https://roadrunner.dev) instead of [PHP-FPM](https://www.php.net/manual/en/install.fpm.php) ```shell # First time only: @@ -111,3 +111,63 @@ bin/rr serve -c .rr.dev.yaml ``` Read more [here](https://github.com/baldinof/roadrunner-bundle) and [here](https://github.com/roadrunner-server/roadrunner). + +## Running in Docker + +### Docker Compose example: + +When running in Docker **DO NOT FORGET** to use Nginx or other reverse-proxy server and properly set `TRUSTED_PROXIES` +environment variable. You can read more about it [here](https://symfony.com/doc/current/deployment/proxies.html#but-what-if-the-ip-of-my-reverse-proxy-changes-constantly). + +```yaml +version: '3.7' + +services: + magnetico-web: + image: skobkin/magnetico-web + container_name: magnetico-web + hostname: magnetico-web + extra_hosts: + - 'host.docker.internal:host-gateway' + ports: + - "127.0.0.1:${EXT_HTTP_PORT:-8080}:8080/tcp" + restart: unless-stopped + user: "$UID" + volumes: + - "${LOG_PATH:-./var/log}:/app/var/log" + env_file: .env + logging: + driver: "json-file" + options: + max-size: "${LOG_MAX_SIZE:-5m}" + max-file: "${LOG_MAX_FILE:-5}" +``` + +Use dotenv file to configure this stack: + +```dotenv +# Example with some useful parameters +APP_SECRET=qwerty + +APP_DATABASE_URL=postgres://magnetico-web:password@host.docker.internal:5432/magnetico-web?application_name=magnetico_web +MAGNETICOD_DATABASE_URL=postgres://magneticod:password@host.docker.internal:5432/magneticod?application_name=magnetico_web + +REDIS_DSN=redis://host.docker.internal:6379/0 + +# BE CAREFUL WITH 'REMOTE_ADDR'. Use ONLY with trusted reverse-proxy +TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR + +###> sentry/sentry-symfony ### +SENTRY_DSN=https://abcabcdaefdaef@sentry.io/123456 +###< sentry/sentry-symfony ### + +###> symfony/mailer ### +MAILER_DSN=smtp://mail@domain.tld:password@smtp.domain.tld:587 +MAILER_FROM=no-reply@domain.tld +###< symfony/mailer ### + +###> excelwebzone/recaptcha-bundle ### +EWZ_RECAPTCHA_SITE_KEY=key +EWZ_RECAPTCHA_SECRET=secret +###< excelwebzone/recaptcha-bundle ### +``` diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index c51aebb..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3.7' - -services: - magnetico-web: - image: skobkin/magnetico-web - build: - context: . - container_name: magnetico-web - hostname: magnetico-web - extra_hosts: - - 'host.docker.internal:host-gateway' - ports: - - "127.0.0.1:${EXT_HTTP_PORT:-8080}:8080/tcp" - restart: unless-stopped - user: "$UID" - volumes: - - "${LOG_PATH:-./var/log}:/app/var/log" - logging: - driver: "json-file" - options: - max-size: "${LOG_MAX_SIZE:-5m}" - max-file: "${LOG_MAX_FILE:-5}" -- 2.40.1 From 47f9b3f539a7ab836b4d7441eae27e6bd5f05edb Mon Sep 17 00:00:00 2001 From: Alexey Skobkin Date: Mon, 11 Jul 2022 03:35:47 +0300 Subject: [PATCH 11/11] Trusted proxies note in roadrunner docs. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 69e0593..fb3e10d 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,11 @@ bin/rr serve -c .rr.dev.yaml Read more [here](https://github.com/baldinof/roadrunner-bundle) and [here](https://github.com/roadrunner-server/roadrunner). +### Trusted proxies + +If you're running the app in RoadRunner and experiencing problems with proper URL generation (HTTP instead of HTTPS), +check beginning of the section about running in Docker below. + ## Running in Docker ### Docker Compose example: -- 2.40.1