|
1 | 1 | version: '3.8' |
2 | 2 |
|
3 | 3 | services: |
4 | | - ilyaguev_igor-indigolab-php: |
| 4 | + app: |
5 | 5 | build: |
6 | 6 | context: . |
7 | | - dockerfile: ./docker/php/Dockerfile |
8 | | - container_name: ilyaguev_igor-indigolab-php |
| 7 | + dockerfile: docker/php/Dockerfile |
| 8 | + args: |
| 9 | + UID: ${UID} |
| 10 | + GID: ${GID} |
| 11 | + APP_ENV: ${APP_ENV} |
| 12 | + container_name: "${PROJECT_NAME}-app" |
9 | 13 | restart: unless-stopped |
10 | | - volumes: |
11 | | - - .:/var/www/html |
| 14 | + user: "${UID:-1000}:${GID:-1000}" |
| 15 | + working_dir: /var/www/html |
12 | 16 | environment: |
13 | | - - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@ilyaguev_igor-indigolab-postgres:5432/${POSTGRES_DB} |
14 | | - - REDIS_URL=redis://ilyaguev_igor-indigolab-redis:6379 |
15 | | -# - XDEBUG_CLIENT_HOST=${XDEBUG_CLIENT_HOST} |
16 | | -# - XDEBUG_IDEKEY=${XDEBUG_IDEKEY} |
| 17 | + APP_ENV: ${APP_ENV} |
| 18 | + APP_DEBUG: ${APP_DEBUG} |
| 19 | + DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PROJECT_NAME}-postgres:${POSTGRES_PORT}/${POSTGRES_DB} |
| 20 | + REDIS_URL: redis://${PROJECT_NAME}-redis:${REDIS_PORT} |
| 21 | + XDEBUG_MODE: ${XDEBUG_MODE:-off} |
| 22 | + XDEBUG_TRIGGER: ${XDEBUG_TRIGGER:-TRIGGER} |
| 23 | + XDEBUG_CONFIG: "client_host=${XDEBUG_HOST:-host.docker.internal} discover_client_host=1 log=/var/log/xdebug/xdebug.log" |
| 24 | + PHP_IDE_CONFIG: "serverName=Docker" |
| 25 | + TZ: ${TZ} |
| 26 | + volumes: |
| 27 | + - ./:/var/www/html |
17 | 28 | depends_on: |
18 | | - - ilyaguev_igor-indigolab-postgres |
19 | | - - ilyaguev_igor-indigolab-redis |
| 29 | + - db |
| 30 | + - redis |
20 | 31 | networks: |
21 | | - - indigolab-network |
| 32 | + - app-network |
22 | 33 |
|
23 | | - ilyaguev_igor-indigolab-nginx: |
24 | | - image: nginx:latest |
25 | | - container_name: ilyaguev_igor-indigolab-nginx |
| 34 | + nginx: |
| 35 | + image: nginx:1.25-alpine |
| 36 | + container_name: "${PROJECT_NAME}-nginx" |
26 | 37 | restart: unless-stopped |
27 | 38 | ports: |
28 | 39 | - "${HTTP_PORT}:80" |
| 40 | + - "${HTTPS_PORT}:443" |
29 | 41 | volumes: |
30 | 42 | - ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf |
31 | 43 | - ./public:/var/www/html/public |
32 | 44 | depends_on: |
33 | | - - ilyaguev_igor-indigolab-php |
| 45 | + - app |
34 | 46 | networks: |
35 | | - - indigolab-network |
| 47 | + - app-network |
36 | 48 |
|
37 | | - ilyaguev_igor-indigolab-postgres: |
38 | | - image: postgres:latest |
39 | | - container_name: ilyaguev_igor-indigolab-postgres |
| 49 | + db: |
| 50 | + image: postgres:16 |
| 51 | + container_name: "${PROJECT_NAME}-postgres" |
40 | 52 | restart: unless-stopped |
41 | 53 | environment: |
42 | 54 | POSTGRES_DB: ${POSTGRES_DB} |
43 | 55 | POSTGRES_USER: ${POSTGRES_USER} |
44 | 56 | POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} |
45 | 57 | POSTGRES_ROOT_PASSWORD: ${POSTGRES_ROOT_PASSWORD} |
46 | | - TZ: "Europe/Moscow" |
| 58 | + TZ: ${TZ} |
47 | 59 | ports: |
48 | 60 | - "${POSTGRES_PORT}:5432" |
49 | 61 | volumes: |
50 | | - - ./docker/pgdata:/var/lib/postgresql/data |
| 62 | + - pgdata:/var/lib/postgresql/data |
| 63 | + healthcheck: |
| 64 | + test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ] |
| 65 | + interval: 5s |
| 66 | + timeout: 5s |
| 67 | + retries: 5 |
51 | 68 | networks: |
52 | | - - indigolab-network |
| 69 | + - app-network |
53 | 70 |
|
54 | | - ilyaguev_igor-indigolab-redis: |
55 | | - image: redis:latest |
56 | | - container_name: ilyaguev_igor-indigolab-redis |
| 71 | + redis: |
| 72 | + image: redis:7-alpine |
| 73 | + container_name: "${PROJECT_NAME}-redis" |
57 | 74 | restart: unless-stopped |
| 75 | + environment: |
| 76 | + REDIS_PASSWORD: ${REDIS_PASSWORD} |
| 77 | + TZ: ${TZ} |
58 | 78 | ports: |
59 | | - - "6379:6379" |
| 79 | + - "${REDIS_PORT}:6379" |
60 | 80 | networks: |
61 | | - - indigolab-network |
| 81 | + - app-network |
62 | 82 |
|
63 | 83 | volumes: |
64 | | - postgres_data: |
| 84 | + pgdata: |
65 | 85 |
|
66 | 86 | networks: |
67 | | - indigolab-network: |
| 87 | + app-network: |
68 | 88 | driver: bridge |
0 commit comments