Skip to content

Commit 8743609

Browse files
author
DKravtsov
committedOct 31, 2024·
Updated composer dependencies, extended environment configuration, documentation, fixed rabbitmq volumes mapping issue.
1 parent 3377f1f commit 8743609

32 files changed

+2573
-2276
lines changed
 

‎.env

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,35 @@
1818
COMPOSE_PROJECT_NAME=environment1
1919
###< docker compose configuration ###
2020

21-
###> docker configuration that can be overridden in .env.local ###
21+
###> NGinx docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
2222
WEB_PORT_HTTP=80
2323
WEB_PORT_SSL=443
24+
###< Nginx docker configuration ###
25+
26+
###> XDebug docker configuration. Can be overridden in: .env.local. ###
2427
# XDEBUG_CONFIG possible values: main|osx. Use main value for Linux and Windows, osx value for MacOS.
2528
XDEBUG_CONFIG=main
2629
# Sometimes we need to use different xdebug versions, list of versions can be found here - https://pecl.php.net/package/xdebug
2730
XDEBUG_VERSION=3.3.2
28-
# MySQL version, recommend values: 8.4|8.3|8.2|8.1|8.0
29-
MYSQL_VERSION=8.4
31+
###< XDebug docker configuration ###
32+
33+
###> MySQL docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
34+
# MySQL version, recommend values: 9.1.0|9.0.1|8.4.2|8.3.0|8.2.0|8.1.0|8.0.39
35+
MYSQL_VERSION=8.4.2
3036
# MySQL INNODB_USE_NATIVE_AIO possible values: 1|0. Set to 0 when AIO interface is not supported on OSX. https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_use_native_aio
3137
INNODB_USE_NATIVE_AIO=1
3238
# Sometimes AWS MySQL RDS has SQL_MODE="NO_ENGINE_SUBSTITUTION" (https://github.com/awsdocs/amazon-rds-user-guide/issues/160) but MySQL default described here - https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_mode
3339
SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
34-
###< docker configuration that can be overridden in .env.local ###
40+
MYSQL_ROOT_PASSWORD=secret
41+
MYSQL_PORT=33061
42+
###< MySQL docker configuration ###
43+
44+
###> RabbitMQ docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
45+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
46+
RABBITMQ_USER=guest
47+
RABBITMQ_PASS=guest
48+
RABBITMQ_MANAGEMENT_PORT=15672
49+
###< RabbitMQ docker configuration ###
3550

3651
###> symfony/framework-bundle ###
3752
APP_ENV=dev
@@ -47,15 +62,15 @@ TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
4762
#
4863
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
4964
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
50-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
65+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
5166
###< doctrine/doctrine-bundle ###
5267

5368
###> symfony/mailer ###
5469
MAILER_DSN=smtp://user:pass@mail:1025
5570
###< symfony/mailer ###
5671

5772
###> symfony/messenger ###
58-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
73+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
5974
###< symfony/messenger ###
6075

6176
###> symfony/lock ###

‎.env.prod

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
# define your env variables for the prod env here
2+
MYSQL_ROOT_PASSWORD=secret
3+
4+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
5+
RABBITMQ_USER=guest
6+
RABBITMQ_PASS=guest
7+
28
APP_ENV=prod
39
APP_SECRET=42f011ec3a7bde0bec87364b1d967194
410
APP_DEBUG=0
511

612
###> doctrine/doctrine-bundle ###
7-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
13+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
814
###< doctrine/doctrine-bundle ###
915

1016
###> symfony/mailer ###
1117
MAILER_DSN=smtp://user:pass@smtp.example.com?encryption=tls
1218
###< symfony/mailer ###
1319

1420
###> symfony/messenger ###
15-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
21+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
1622
###< symfony/messenger ###

‎.env.staging

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
# define your env variables for the staging env here
2+
MYSQL_ROOT_PASSWORD=secret
3+
4+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
5+
RABBITMQ_USER=guest
6+
RABBITMQ_PASS=guest
7+
28
APP_ENV=staging
39
APP_SECRET=42f011ec3a7bde0bec87364b1d967194
410
APP_DEBUG=0
511

612
###> doctrine/doctrine-bundle ###
7-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
13+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
814
###< doctrine/doctrine-bundle ###
915

1016
###> symfony/mailer ###
1117
MAILER_DSN=smtp://user:pass@smtp.example.com?encryption=tls
1218
###< symfony/mailer ###
1319

1420
###> symfony/messenger ###
15-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
21+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
1622
###< symfony/messenger ###

‎.env.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ APP_DEBUG=0
66
SYMFONY_DEPRECATIONS_HELPER=999999
77

88
###> doctrine/doctrine-bundle ###
9-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony_testing
9+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony_testing
1010
###< doctrine/doctrine-bundle ###
1111

1212
###> symfony/mailer ###

‎.idea/codeception.xml

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎.idea/htdocs.iml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎.idea/php.xml

Lines changed: 274 additions & 272 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎.idea/phpspec.xml

Lines changed: 3 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎.idea/phpunit.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Makefile

Lines changed: 40 additions & 34 deletions
Large diffs are not rendered by default.

‎compose-prod.yaml

Lines changed: 68 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,82 @@
11
services:
22

33
nginx:
4-
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5-
build:
6-
context: ./docker/
7-
args:
8-
BUILD_ARGUMENT_ENV: prod
9-
dockerfile: ./nginx/Dockerfile
10-
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11-
restart: always
12-
ports:
13-
- "${WEB_PORT_HTTP}:80"
14-
- "${WEB_PORT_SSL}:443"
15-
volumes:
16-
- ./:/var/www/html:ro,cached
17-
depends_on:
18-
- symfony
19-
networks:
20-
- symfony
4+
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5+
build:
6+
context: ./docker/
7+
args:
8+
BUILD_ARGUMENT_ENV: prod
9+
dockerfile: ./nginx/Dockerfile
10+
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11+
restart: always
12+
ports:
13+
- "${WEB_PORT_HTTP}:80"
14+
- "${WEB_PORT_SSL}:443"
15+
volumes:
16+
- ./:/var/www/html:ro,cached
17+
depends_on:
18+
- symfony
19+
networks:
20+
- symfony
2121

2222
symfony: &symfony-template
23-
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24-
build:
25-
context: .
26-
args:
27-
BUILD_ARGUMENT_ENV: prod
28-
HOST_UID: ${HOST_UID}
29-
HOST_GID: ${HOST_GID}
30-
dockerfile: ./Dockerfile
31-
container_name: ${COMPOSE_PROJECT_NAME}-symfony
32-
restart: always
33-
depends_on:
34-
- mysql
35-
- rabbitmq
36-
networks:
37-
- symfony
23+
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24+
build:
25+
context: .
26+
args:
27+
BUILD_ARGUMENT_ENV: prod
28+
HOST_UID: ${HOST_UID}
29+
HOST_GID: ${HOST_GID}
30+
dockerfile: ./Dockerfile
31+
container_name: ${COMPOSE_PROJECT_NAME}-symfony
32+
restart: always
33+
depends_on:
34+
- mysql
35+
- rabbitmq
36+
networks:
37+
- symfony
3838

3939
### Cron tasks, RabbitMQ consumers
4040
supervisord:
41-
<<: *symfony-template
42-
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
43-
expose: []
44-
command: ["/usr/bin/supervisord"]
41+
<<: *symfony-template
42+
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
43+
expose: [ ]
44+
command: [ "/usr/bin/supervisord" ]
4545

4646
mysql:
47-
image: mysql:${MYSQL_VERSION}
48-
platform: linux/x86_64
49-
container_name: ${COMPOSE_PROJECT_NAME}-mysql
50-
restart: always
51-
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
52-
environment:
53-
MYSQL_ROOT_PASSWORD: secret
54-
MYSQL_DATABASE: symfony
55-
volumes:
56-
- ./var/mysql-data:/var/lib/mysql:delegated
57-
networks:
58-
- symfony
47+
image: mysql:${MYSQL_VERSION}
48+
platform: linux/x86_64
49+
container_name: ${COMPOSE_PROJECT_NAME}-mysql
50+
restart: always
51+
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
52+
environment:
53+
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
54+
MYSQL_DATABASE: symfony
55+
volumes:
56+
- ./var/mysql-data:/var/lib/mysql:delegated
57+
networks:
58+
- symfony
5959

6060
rabbitmq:
61-
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
62-
build:
63-
context: ./docker/rabbitmq/
64-
dockerfile: ./Dockerfile
65-
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
66-
restart: always
67-
environment:
68-
RABBITMQ_ERLANG_COOKIE: 7ead507151fc4461b9f45c1161384a04
69-
RABBITMQ_DEFAULT_USER: guest
70-
RABBITMQ_DEFAULT_PASS: guest
71-
RABBITMQ_DEFAULT_VHOST: /
72-
ports:
73-
- "15672:15672"
74-
volumes:
75-
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
76-
networks:
77-
- symfony
61+
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
62+
build:
63+
context: ./docker/rabbitmq/
64+
dockerfile: ./Dockerfile
65+
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
66+
hostname: rabbitmq
67+
restart: always
68+
environment:
69+
RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE}
70+
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
71+
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
72+
RABBITMQ_DEFAULT_VHOST: /
73+
ports:
74+
- "${RABBITMQ_MANAGEMENT_PORT}:15672"
75+
volumes:
76+
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
77+
networks:
78+
- symfony
7879

7980
networks:
80-
symfony:
81-
name: symfony
81+
symfony:
82+
name: symfony

‎compose-staging.yaml

Lines changed: 68 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,82 @@
11
services:
22

33
nginx:
4-
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5-
build:
6-
context: ./docker/
7-
args:
8-
BUILD_ARGUMENT_ENV: staging
9-
dockerfile: ./nginx/Dockerfile
10-
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11-
restart: always
12-
ports:
13-
- "${WEB_PORT_HTTP}:80"
14-
- "${WEB_PORT_SSL}:443"
15-
volumes:
16-
- ./:/var/www/html:ro,cached
17-
depends_on:
18-
- symfony
19-
networks:
20-
- symfony
4+
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5+
build:
6+
context: ./docker/
7+
args:
8+
BUILD_ARGUMENT_ENV: staging
9+
dockerfile: ./nginx/Dockerfile
10+
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11+
restart: always
12+
ports:
13+
- "${WEB_PORT_HTTP}:80"
14+
- "${WEB_PORT_SSL}:443"
15+
volumes:
16+
- ./:/var/www/html:ro,cached
17+
depends_on:
18+
- symfony
19+
networks:
20+
- symfony
2121

2222
symfony: &symfony-template
23-
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24-
build:
25-
context: .
26-
args:
27-
BUILD_ARGUMENT_ENV: staging
28-
HOST_UID: ${HOST_UID}
29-
HOST_GID: ${HOST_GID}
30-
dockerfile: ./Dockerfile
31-
container_name: ${COMPOSE_PROJECT_NAME}-symfony
32-
restart: always
33-
depends_on:
34-
- mysql
35-
- rabbitmq
36-
networks:
37-
- symfony
23+
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24+
build:
25+
context: .
26+
args:
27+
BUILD_ARGUMENT_ENV: staging
28+
HOST_UID: ${HOST_UID}
29+
HOST_GID: ${HOST_GID}
30+
dockerfile: ./Dockerfile
31+
container_name: ${COMPOSE_PROJECT_NAME}-symfony
32+
restart: always
33+
depends_on:
34+
- mysql
35+
- rabbitmq
36+
networks:
37+
- symfony
3838

3939
### Cron tasks, RabbitMQ consumers
4040
supervisord:
41-
<<: *symfony-template
42-
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
43-
expose: []
44-
command: ["/usr/bin/supervisord"]
41+
<<: *symfony-template
42+
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
43+
expose: [ ]
44+
command: [ "/usr/bin/supervisord" ]
4545

4646
mysql:
47-
image: mysql:${MYSQL_VERSION}
48-
platform: linux/x86_64
49-
container_name: ${COMPOSE_PROJECT_NAME}-mysql
50-
restart: always
51-
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
52-
environment:
53-
MYSQL_ROOT_PASSWORD: secret
54-
MYSQL_DATABASE: symfony
55-
volumes:
56-
- ./var/mysql-data:/var/lib/mysql:delegated
57-
networks:
58-
- symfony
47+
image: mysql:${MYSQL_VERSION}
48+
platform: linux/x86_64
49+
container_name: ${COMPOSE_PROJECT_NAME}-mysql
50+
restart: always
51+
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
52+
environment:
53+
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
54+
MYSQL_DATABASE: symfony
55+
volumes:
56+
- ./var/mysql-data:/var/lib/mysql:delegated
57+
networks:
58+
- symfony
5959

6060
rabbitmq:
61-
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
62-
build:
63-
context: ./docker/rabbitmq/
64-
dockerfile: ./Dockerfile
65-
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
66-
restart: always
67-
environment:
68-
RABBITMQ_ERLANG_COOKIE: 7ead507151fc4461b9f45c1161384a04
69-
RABBITMQ_DEFAULT_USER: guest
70-
RABBITMQ_DEFAULT_PASS: guest
71-
RABBITMQ_DEFAULT_VHOST: /
72-
ports:
73-
- "15672:15672"
74-
volumes:
75-
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
76-
networks:
77-
- symfony
61+
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
62+
build:
63+
context: ./docker/rabbitmq/
64+
dockerfile: ./Dockerfile
65+
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
66+
hostname: rabbitmq
67+
restart: always
68+
environment:
69+
RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE}
70+
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
71+
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
72+
RABBITMQ_DEFAULT_VHOST: /
73+
ports:
74+
- "${RABBITMQ_MANAGEMENT_PORT}:15672"
75+
volumes:
76+
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
77+
networks:
78+
- symfony
7879

7980
networks:
80-
symfony:
81-
name: symfony
81+
symfony:
82+
name: symfony

‎compose-test-ci.yaml

Lines changed: 73 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,87 @@
11
services:
22

33
nginx:
4-
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5-
build:
6-
context: ./docker/
7-
args:
8-
BUILD_ARGUMENT_ENV: test
9-
dockerfile: ./nginx/Dockerfile
10-
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11-
restart: always
12-
ports:
13-
- "${WEB_PORT_HTTP}:80"
14-
- "${WEB_PORT_SSL}:443"
15-
volumes:
16-
- ./:/var/www/html:ro,cached
17-
depends_on:
18-
- symfony
19-
networks:
20-
- symfony
4+
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5+
build:
6+
context: ./docker/
7+
args:
8+
BUILD_ARGUMENT_ENV: test
9+
dockerfile: ./nginx/Dockerfile
10+
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11+
restart: always
12+
ports:
13+
- "${WEB_PORT_HTTP}:80"
14+
- "${WEB_PORT_SSL}:443"
15+
volumes:
16+
- ./:/var/www/html:ro,cached
17+
depends_on:
18+
- symfony
19+
networks:
20+
- symfony
2121

2222
symfony: &symfony-template
23-
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24-
build:
25-
context: .
26-
args:
27-
BUILD_ARGUMENT_ENV: test
28-
HOST_UID: ${HOST_UID}
29-
HOST_GID: ${HOST_GID}
30-
XDEBUG_CONFIG: ${XDEBUG_CONFIG}
31-
XDEBUG_VERSION: ${XDEBUG_VERSION}
32-
dockerfile: ./Dockerfile
33-
container_name: ${COMPOSE_PROJECT_NAME}-symfony
34-
volumes:
35-
- ./.git:/var/www/html/.git:cached
36-
- ./reports:/var/www/html/reports:delegated
37-
depends_on:
38-
- mysql
39-
- rabbitmq
40-
networks:
41-
- symfony
23+
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24+
build:
25+
context: .
26+
args:
27+
BUILD_ARGUMENT_ENV: test
28+
HOST_UID: ${HOST_UID}
29+
HOST_GID: ${HOST_GID}
30+
XDEBUG_CONFIG: ${XDEBUG_CONFIG}
31+
XDEBUG_VERSION: ${XDEBUG_VERSION}
32+
dockerfile: ./Dockerfile
33+
container_name: ${COMPOSE_PROJECT_NAME}-symfony
34+
volumes:
35+
- ./.git:/var/www/html/.git:cached
36+
- ./reports:/var/www/html/reports:delegated
37+
depends_on:
38+
- mysql
39+
- rabbitmq
40+
networks:
41+
- symfony
4242

4343
### Cron tasks, RabbitMQ consumers
4444
supervisord:
45-
<<: *symfony-template
46-
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
47-
expose: []
48-
command: ["/usr/bin/supervisord"]
45+
<<: *symfony-template
46+
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
47+
expose: [ ]
48+
command: [ "/usr/bin/supervisord" ]
4949

5050
mysql:
51-
image: mysql:${MYSQL_VERSION}
52-
platform: linux/x86_64
53-
container_name: ${COMPOSE_PROJECT_NAME}-mysql
54-
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
55-
environment:
56-
MYSQL_ROOT_PASSWORD: secret
57-
MYSQL_DATABASE: symfony
58-
ports:
59-
- "33061:3306"
60-
volumes:
61-
- ./var/mysql-data:/var/lib/mysql:delegated
62-
- ./docker/dev/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
63-
networks:
64-
- symfony
51+
image: mysql:${MYSQL_VERSION}
52+
platform: linux/x86_64
53+
container_name: ${COMPOSE_PROJECT_NAME}-mysql
54+
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
55+
environment:
56+
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
57+
MYSQL_DATABASE: symfony
58+
ports:
59+
- "${MYSQL_PORT}:3306"
60+
volumes:
61+
- ./var/mysql-data:/var/lib/mysql:delegated
62+
- ./docker/dev/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
63+
networks:
64+
- symfony
6565

6666
rabbitmq:
67-
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
68-
build:
69-
context: ./docker/rabbitmq/
70-
dockerfile: ./Dockerfile
71-
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
72-
environment:
73-
RABBITMQ_ERLANG_COOKIE: 7ead507151fc4461b9f45c1161384a04
74-
RABBITMQ_DEFAULT_USER: guest
75-
RABBITMQ_DEFAULT_PASS: guest
76-
RABBITMQ_DEFAULT_VHOST: /
77-
ports:
78-
- "15672:15672"
79-
volumes:
80-
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
81-
networks:
82-
- symfony
67+
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
68+
build:
69+
context: ./docker/rabbitmq/
70+
dockerfile: ./Dockerfile
71+
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
72+
hostname: rabbitmq
73+
environment:
74+
RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE}
75+
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
76+
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
77+
RABBITMQ_DEFAULT_VHOST: /
78+
ports:
79+
- "${RABBITMQ_MANAGEMENT_PORT}:15672"
80+
volumes:
81+
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
82+
networks:
83+
- symfony
8384

8485
networks:
85-
symfony:
86-
name: symfony
86+
symfony:
87+
name: symfony

‎compose.yaml

Lines changed: 81 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,97 @@
11
services:
22

33
nginx:
4-
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5-
build:
6-
context: ./docker/
7-
args:
8-
BUILD_ARGUMENT_ENV: dev
9-
dockerfile: ./nginx/Dockerfile
10-
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11-
restart: always
12-
ports:
13-
- "${WEB_PORT_HTTP}:80"
14-
- "${WEB_PORT_SSL}:443"
15-
volumes:
16-
- ./:/var/www/html:ro,cached
17-
depends_on:
18-
- symfony
19-
networks:
20-
- symfony
4+
image: ${COMPOSE_PROJECT_NAME}-nginx:latest
5+
build:
6+
context: ./docker/
7+
args:
8+
BUILD_ARGUMENT_ENV: dev
9+
dockerfile: ./nginx/Dockerfile
10+
container_name: ${COMPOSE_PROJECT_NAME}-nginx
11+
restart: always
12+
ports:
13+
- "${WEB_PORT_HTTP}:80"
14+
- "${WEB_PORT_SSL}:443"
15+
volumes:
16+
- ./:/var/www/html:ro,cached
17+
depends_on:
18+
- symfony
19+
networks:
20+
- symfony
2121

2222
symfony: &symfony-template
23-
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24-
build:
25-
context: .
26-
args:
27-
BUILD_ARGUMENT_ENV: dev
28-
HOST_UID: ${HOST_UID}
29-
HOST_GID: ${HOST_GID}
30-
XDEBUG_CONFIG: ${XDEBUG_CONFIG}
31-
XDEBUG_VERSION: ${XDEBUG_VERSION}
32-
dockerfile: ./Dockerfile
33-
container_name: ${COMPOSE_PROJECT_NAME}-symfony
34-
volumes:
35-
- ./:/var/www/html:cached
36-
depends_on:
37-
- mysql
38-
- rabbitmq
39-
- mail
40-
networks:
41-
- symfony
23+
image: ${COMPOSE_PROJECT_NAME}-symfony:latest
24+
build:
25+
context: .
26+
args:
27+
BUILD_ARGUMENT_ENV: dev
28+
HOST_UID: ${HOST_UID}
29+
HOST_GID: ${HOST_GID}
30+
XDEBUG_CONFIG: ${XDEBUG_CONFIG}
31+
XDEBUG_VERSION: ${XDEBUG_VERSION}
32+
dockerfile: ./Dockerfile
33+
container_name: ${COMPOSE_PROJECT_NAME}-symfony
34+
volumes:
35+
- ./:/var/www/html:cached
36+
depends_on:
37+
- mysql
38+
- rabbitmq
39+
- mail
40+
networks:
41+
- symfony
4242

4343
### Cron tasks, RabbitMQ consumers
4444
supervisord:
45-
<<: *symfony-template
46-
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
47-
expose: []
48-
command: ["/usr/bin/supervisord"]
45+
<<: *symfony-template
46+
container_name: ${COMPOSE_PROJECT_NAME}-supervisord
47+
expose: [ ]
48+
command: [ "/usr/bin/supervisord" ]
4949

5050
mysql:
51-
image: mysql:${MYSQL_VERSION}
52-
platform: linux/x86_64
53-
container_name: ${COMPOSE_PROJECT_NAME}-mysql
54-
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
55-
environment:
56-
MYSQL_ROOT_PASSWORD: secret
57-
MYSQL_DATABASE: symfony
58-
ports:
59-
- "33061:3306"
60-
volumes:
61-
- ./var/mysql-data:/var/lib/mysql:delegated
62-
- ./docker/dev/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
63-
networks:
64-
- symfony
51+
image: mysql:${MYSQL_VERSION}
52+
platform: linux/x86_64
53+
container_name: ${COMPOSE_PROJECT_NAME}-mysql
54+
command: --innodb-use-native-aio=${INNODB_USE_NATIVE_AIO:-1} --sql_mode=${SQL_MODE:-"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"}
55+
environment:
56+
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
57+
MYSQL_DATABASE: symfony
58+
ports:
59+
- "${MYSQL_PORT}:3306"
60+
volumes:
61+
- ./var/mysql-data:/var/lib/mysql:delegated
62+
- ./docker/dev/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
63+
networks:
64+
- symfony
6565

6666
rabbitmq:
67-
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
68-
build:
69-
context: ./docker/rabbitmq/
70-
dockerfile: ./Dockerfile
71-
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
72-
environment:
73-
RABBITMQ_ERLANG_COOKIE: 7ead507151fc4461b9f45c1161384a04
74-
RABBITMQ_DEFAULT_USER: guest
75-
RABBITMQ_DEFAULT_PASS: guest
76-
RABBITMQ_DEFAULT_VHOST: /
77-
ports:
78-
- "15672:15672"
79-
volumes:
80-
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
81-
networks:
82-
- symfony
67+
image: ${COMPOSE_PROJECT_NAME}-rabbitmq
68+
build:
69+
context: ./docker/rabbitmq/
70+
dockerfile: ./Dockerfile
71+
container_name: ${COMPOSE_PROJECT_NAME}-rabbitmq
72+
hostname: rabbitmq
73+
environment:
74+
RABBITMQ_ERLANG_COOKIE: ${RABBITMQ_ERLANG_COOKIE}
75+
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
76+
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
77+
RABBITMQ_DEFAULT_VHOST: /
78+
ports:
79+
- "${RABBITMQ_MANAGEMENT_PORT}:15672"
80+
volumes:
81+
- ./var/rabbitmq:/var/lib/rabbitmq:delegated
82+
networks:
83+
- symfony
8384

8485
mail:
85-
image: axllent/mailpit:latest
86-
container_name: ${COMPOSE_PROJECT_NAME}-mail
87-
restart: always
88-
ports:
89-
- "8025:8025"
90-
- "1025:1025"
91-
networks:
92-
- symfony
86+
image: axllent/mailpit:latest
87+
container_name: ${COMPOSE_PROJECT_NAME}-mail
88+
restart: always
89+
ports:
90+
- "8025:8025"
91+
- "1025:1025"
92+
networks:
93+
- symfony
9394

9495
networks:
95-
symfony:
96-
name: symfony
96+
symfony:
97+
name: symfony

‎composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"ext-pdo": "*",
3434
"ext-pdo_mysql": "*",
3535
"doctrine/annotations": "^2.0",
36-
"doctrine/doctrine-bundle": "^2.12",
36+
"doctrine/doctrine-bundle": "^2.13",
3737
"doctrine/doctrine-migrations-bundle": "^3.3",
3838
"doctrine/orm": "^2.19",
3939
"phpdocumentor/reflection-docblock": "^5.4",
@@ -133,6 +133,7 @@
133133
"Symfony\\Bridge\\PhpUnit\\": "tools/01_phpunit/vendor/symfony/phpunit-bridge",
134134
"PHPMD\\": "tools/06_phpmd/vendor/phpmd/phpmd/src/bin",
135135
"PhpCsFixer\\": "tools/03_ecs/vendor/symplify/easy-coding-standard/vendor/friendsofphp/php-cs-fixer/src",
136+
"PHP_CodeSniffer\\": "tools/03_ecs/vendor/symplify/easy-coding-standard/vendor/squizlabs/php_codesniffer/src",
136137
"Symplify\\CodingStandard\\": "tools/03_ecs/vendor/symplify/easy-coding-standard/vendor/symplify/coding-standard/src",
137138
"Symplify\\EasyCodingStandard\\": "tools/03_ecs/vendor/symplify/easy-coding-standard/src",
138139
"ECSPrefix20210928\\Symplify\\RuleDocGenerator\\": "tools/03_ecs/vendor/symplify/easy-coding-standard/vendor/symplify/rule-doc-generator-contracts/src",

‎composer.lock

Lines changed: 559 additions & 531 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎docs/messenger.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
# Messenger
2-
This document describing how you can use [messenger](https://symfony.com/doc/current/messenger.html) within this environment.
2+
This document describing how you can use [symfony/messenger](https://symfony.com/doc/current/messenger.html) bundle inside this environment.
33

44
## Using messenger
55
### Description
6-
Symfony's Messenger provides a message bus and some routing capabilities to send messages within your application and through transports such as message queues. Before using it, read the [Messenger component](https://symfony.com/doc/current/components/messenger.html) docs to get familiar with its concepts.
6+
Symfony's Messenger is much powerful bundle, that supports by the symfony core team, and provides a message bus and some routing capabilities to send messages within your application and through transports such as message queues. Before using it, read the [Messenger component](https://symfony.com/doc/current/components/messenger.html) documentation to get familiar with its concepts.
7+
78
### RabbitMQ
89
This environment is using [RabbitMQ](https://hub.docker.com/_/rabbitmq) message broker software. RabbitMQ is open source message broker software (sometimes called message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP). The RabbitMQ server is written in the Erlang programming language and is built on the Open Telecom Platform framework for clustering and failover. Client libraries to interface with the broker are available for all major programming languages.
10+
911
### Admin panel
10-
You can use your browser in order to manage/view messages. Just open next url in your browser: http://localhost:15672. Default login - guest and password - guest. You can change it in compose file if it is necessary.
12+
You can use your browser in order to manage/view messages. Just open next url in your browser: [http://localhost:15672](http://localhost:15672). Default login - `guest` and password - `guest` (you are able to change it inside `.env` configuration file).
13+
1114
### Consuming Messages
12-
Once your messages have been routed, it will be consumed. In case any issue just make sure that program:messenger is working in supervisord. You can use make command "make logs-supervisord" for this needs.
15+
Once your messages have been routed, it will be consumed. In case any issue just make sure that program:messenger is working in supervisord. You can use make command `make logs-supervisord` for these needs.
16+
1317
### Message and Handler
1418
Before you can send a message, you must create it first. In order to do something when your message is dispatched, you need to create a message handler. Please follow docs in order to implement it:
1519

‎docs/testing.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
This document describing how you can run tests within this environment.
33

44
### General
5-
This environment contains next types of tests:
5+
This environment contains next [types](https://symfony.com/doc/current/testing.html#types-of-tests) of tests:
66

77
* Application tests (TODO: Implement it)
8+
* Integration tests (TODO: Implement it)
89
* Unit tests (TODO: Implement it)
910

1011
All tests relies to [PHPUnit](https://phpunit.de/) library.

‎phpunit.xml.dist

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,14 @@
4040
<env name="APP_DEBUG" value="false" force="true" />
4141
</php>
4242
<testsuites>
43-
<testsuite name="Unit">
44-
<directory suffix="Test.php">./tests/Unit</directory>
45-
</testsuite>
4643
<testsuite name="Application">
4744
<directory suffix="Test.php">./tests/Application</directory>
4845
</testsuite>
46+
<testsuite name="Integration">
47+
<directory suffix="Test.php">./tests/Integration</directory>
48+
</testsuite>
49+
<testsuite name="Unit">
50+
<directory suffix="Test.php">./tests/Unit</directory>
51+
</testsuite>
4952
</testsuites>
5053
</phpunit>

‎tests/Integration/.gitkeep

Whitespace-only changes.

‎tools/01_phpunit/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"php": "^8.3.0"
66
},
77
"require-dev": {
8-
"phpunit/phpunit": "11.3.*",
8+
"phpunit/phpunit": "11.4.*",
99
"symfony/browser-kit": "7.1.*",
1010
"symfony/css-selector": "7.1.*",
1111
"symfony/phpunit-bridge": "7.1.*",

‎tools/01_phpunit/composer.lock

Lines changed: 153 additions & 136 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/02_phpstan/composer.lock

Lines changed: 58 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/03_ecs/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"php": "^8.3.0"
66
},
77
"require-dev": {
8-
"friendsofphp/php-cs-fixer": "3.62.*",
8+
"friendsofphp/php-cs-fixer": "3.64.*",
9+
"squizlabs/php_codesniffer": "3.10.*",
910
"symplify/easy-coding-standard": "12.3.*",
1011
"roave/security-advisories": "dev-latest"
1112
},

‎tools/03_ecs/composer.lock

Lines changed: 267 additions & 170 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/04_php-coveralls/composer.lock

Lines changed: 128 additions & 111 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/05_phpinsights/composer.lock

Lines changed: 215 additions & 198 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/06_phpmd/composer.lock

Lines changed: 108 additions & 91 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/07_phpmetrics/composer.lock

Lines changed: 65 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/08_rector/composer.lock

Lines changed: 70 additions & 53 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tools/09_composer/composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"php": "^8.3.0"
66
},
77
"require-dev": {
8-
"ergebnis/composer-normalize": "^2.43",
8+
"ergebnis/composer-normalize": "^2.44",
99
"icanhazstring/composer-unused": "^0.8",
10-
"maglnet/composer-require-checker": "^4.11",
10+
"maglnet/composer-require-checker": "^4.13",
1111
"roave/security-advisories": "dev-latest"
1212
},
1313
"config": {

‎tools/09_composer/composer.lock

Lines changed: 279 additions & 256 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.