Skip to content

Commit e0c5852

Browse files
committed
add docker
1 parent f5d648a commit e0c5852

File tree

12 files changed

+169
-44
lines changed

12 files changed

+169
-44
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docker/pgdata

.env

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
3939
###> symfony/mailer ###
4040
MAILER_DSN=null://null
4141
###< symfony/mailer ###
42+
43+
# Настройки Xdebug
44+
XDEBUG_CLIENT_HOST=host.docker.internal
45+
XDEBUG_IDEKEY=PHPSTORM

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,8 @@ phpstan.neon
3737
/.php-cs-fixer.php
3838
/.php-cs-fixer.cache
3939
###< friendsofphp/php-cs-fixer ###
40+
41+
###> IDE files ###
42+
/docker/pgdata
43+
/docker/.env
44+
###> IDE files ###

Makefile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ install:
44
validate:
55
composer validate
66

7+
PORT ?= 8000
78
start:
89
symfony server:start
9-
#php -S localhost:8000 -t public/
10+
#PHP_CLI_SERVER_WORKERS=5 php -S 0.0.0.0:$(PORT) -t public
1011

1112
lint: phpcsfixer-check phpstan
1213

@@ -27,4 +28,13 @@ phpstan-baseline:
2728
test:
2829
./bin/phpunit
2930

31+
docker-up-d:
32+
docker-compose --env-file ./docker/.env up -d
33+
34+
docker-down:
35+
docker-compose --env-file ./docker/.env down -v
36+
37+
docker-build:
38+
docker-compose --env-file ./docker/.env build
39+
3040
.PHONY: tests

compose.override.yaml

Lines changed: 0 additions & 18 deletions
This file was deleted.

compose.yaml

Lines changed: 0 additions & 25 deletions
This file was deleted.

docker-compose.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
version: '3.8'
2+
3+
services:
4+
ilyaguev_igor-indigolab-php:
5+
build:
6+
context: .
7+
dockerfile: docker/php/Dockerfile
8+
container_name: ilyaguev_igor-indigolab-php
9+
volumes:
10+
- ./:/var/www/html
11+
environment:
12+
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@ilyaguev_igor-indigolab-postgres:5432/${POSTGRES_DB}
13+
- REDIS_URL=redis://ilyaguev_igor-indigolab-redis:6379
14+
# - XDEBUG_CLIENT_HOST=${XDEBUG_CLIENT_HOST}
15+
# - XDEBUG_IDEKEY=${XDEBUG_IDEKEY}
16+
depends_on:
17+
- ilyaguev_igor-indigolab-postgres
18+
- ilyaguev_igor-indigolab-redis
19+
networks:
20+
- indigolab-network
21+
22+
23+
ilyaguev_igor-indigolab-nginx:
24+
image: nginx:latest
25+
container_name: ilyaguev_igor-indigolab-nginx
26+
restart: unless-stopped
27+
ports:
28+
- "8080:80"
29+
volumes:
30+
- ./docker/nginx/conf.d:/etc/nginx/conf.d
31+
- ./public:/var/www/html/public
32+
depends_on:
33+
- ilyaguev_igor-indigolab-php
34+
networks:
35+
- indigolab-network
36+
37+
ilyaguev_igor-indigolab-postgres:
38+
image: postgres:latest
39+
container_name: ilyaguev_igor-indigolab-postgres
40+
restart: unless-stopped
41+
environment:
42+
POSTGRES_DB: ${POSTGRES_DB}
43+
POSTGRES_USER: ${POSTGRES_USER}
44+
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
45+
POSTGRES_ROOT_PASSWORD: ${POSTGRES_ROOT_PASSWORD}
46+
TZ: "Europe/Moscow"
47+
ports:
48+
- "${POSTGRES_PORT}:5432"
49+
volumes:
50+
- ./docker/pgdata:/var/lib/postgresql/data
51+
networks:
52+
- indigolab-network
53+
54+
ilyaguev_igor-indigolab-redis:
55+
image: redis:latest
56+
container_name: ilyaguev_igor-indigolab-redis
57+
restart: unless-stopped
58+
ports:
59+
- "6379:6379"
60+
networks:
61+
- indigolab-network
62+
63+
volumes:
64+
postgres_data:
65+
66+
networks:
67+
indigolab-network:
68+
driver: bridge

docker/.env.dist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
POSTGRES_DB=indigolab
2+
POSTGRES_USER=postgres_user
3+
POSTGRES_PASSWORD=postgres_password
4+
POSTGRES_ROOT_PASSWORD=postgres_root_password
5+
POSTGRES_PORT=5432

docker/nginx/conf.d/conf.d

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
server {
2+
listen 80;
3+
server_name localhost;
4+
5+
root /var/www/html/public;
6+
index index.php;
7+
8+
location / {
9+
try_files $uri /index.php$is_args$args;
10+
}
11+
12+
location ~ ^/index\.php(/|$) {
13+
fastcgi_pass ilyaguev_igor-indigolab-php:9000; # Связь с PHP-FPM
14+
fastcgi_split_path_info ^(.+\.php)(/.*)$;
15+
include fastcgi_params;
16+
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
17+
fastcgi_param DOCUMENT_ROOT $document_root;
18+
internal;
19+
}
20+
21+
location ~ \.php$ {
22+
return 404;
23+
}
24+
25+
error_log /var/log/nginx/project_error.log;
26+
access_log /var/log/nginx/project_access.log;
27+
}

docker/php/Dockerfile

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
FROM php:8.3-fpm
2+
3+
# Устанавливаем необходимые зависимости
4+
RUN apt-get update && apt-get install -y \
5+
git \
6+
libzip-dev \
7+
libpq-dev \
8+
unzip \
9+
&& rm -rf /var/lib/apt/lists/*
10+
11+
# Устанавливаем расширения PHP
12+
RUN docker-php-ext-install zip pdo pdo_pgsql opcache
13+
14+
# Настройка PHP
15+
COPY docker/php/php.ini /usr/local/etc/php/conf.d/
16+
17+
# Устанавливаем Composer
18+
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
19+
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
20+
&& php -r "unlink('composer-setup.php');"
21+
22+
# Устанавливаем Xdebug
23+
RUN pecl install xdebug && docker-php-ext-enable xdebug
24+
25+
# Копируем конфигурацию Xdebug
26+
#COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
27+
28+
# Устанавливаем рабочую директорию
29+
WORKDIR /var/www/html
30+
31+
# Копируем только файлы, необходимые для установки зависимостей
32+
COPY composer.json composer.lock symfony.lock ./
33+
34+
# Устанавливаем зависимости Composer
35+
RUN composer install
36+
37+
# Копируем весь исходный код
38+
COPY . .
39+
40+
# Указываем пользователя для выполнения команд
41+
USER www-data
42+
43+
# Права для веб-сервера
44+
RUN chown -R www-data:www-data /var/www/html/var

0 commit comments

Comments
 (0)