Skip to content

Commit c837d59

Browse files
committed
fix docker files
1 parent ded4a17 commit c837d59

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

.dockerignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
vendor
2-
node_modules
1+
vendor/
2+
var/

docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ services:
66
context: .
77
dockerfile: docker/php/Dockerfile
88
args:
9-
UID: ${UID}
10-
GID: ${GID}
11-
APP_ENV: ${APP_ENV}
9+
USER_ID: ${UID:-1000}
10+
GROUP_ID: ${GID:-1000}
11+
APP_ENV: ${APP_ENV:-prod}
1212
container_name: "${PROJECT_NAME}-app"
1313
restart: unless-stopped
1414
user: "${UID:-1000}:${GID:-1000}"
15-
working_dir: /var/www/html
1615
environment:
1716
APP_ENV: ${APP_ENV}
1817
APP_DEBUG: ${APP_DEBUG}
@@ -25,6 +24,7 @@ services:
2524
TZ: ${TZ}
2625
volumes:
2726
- ./:/var/www/html
27+
command: bash -c "composer install --no-interaction --prefer-dist && php-fpm"
2828
depends_on:
2929
- db
3030
- redis

docker/php/Dockerfile

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
FROM php:8.3-fpm
22

3-
# Устанавливаем пользователя/группу из аргументов
4-
ARG UID=${UID}
5-
ARG GID=${GID}
6-
ARG APP_ENV=${APP_ENV}
3+
ARG USER_ID
4+
ARG GROUP_ID
5+
ARG APP_ENV
76

87
# Устанавливаем необходимые зависимости
98
RUN apt-get update && apt-get install -y \
@@ -15,7 +14,9 @@ RUN apt-get update && apt-get install -y \
1514
make \
1615
curl \
1716
zip \
18-
git
17+
git \
18+
&& apt-get clean \
19+
&& rm -rf /var/lib/apt/lists/*
1920

2021
# Расширения PHP
2122
RUN docker-php-ext-install zip pdo pdo_mysql pdo_pgsql
@@ -24,15 +25,17 @@ RUN docker-php-ext-install zip pdo pdo_mysql pdo_pgsql
2425
RUN echo "alias ll='ls -alF'" >> /etc/bash.bashrc
2526
RUN echo 'source /etc/bash_completion' >> /etc/bash.bashrc
2627

27-
# Пользователь и права
28-
RUN groupmod -g ${GID} www-data && \
29-
usermod -u ${UID} www-data && \
30-
chown -R ${UID}:${GID} /var/www/html
28+
# Создаем группу и пользователя
29+
RUN groupadd -g ${GROUP_ID} appgroup && \
30+
useradd -u ${USER_ID} -g appgroup -m appuser
31+
32+
# Устанавливаем права на директории
33+
RUN chown -R appuser:appgroup /var/www/html
3134

3235
# Логи Xdebug (только для dev)
33-
RUN if [ "$APP_ENV" = "dev" ]; then \
36+
RUN if [ "${APP_ENV}" = "dev" ]; then \
3437
mkdir -p /var/log/xdebug && \
35-
chown -R ${UID}:${GID} /var/log/xdebug && \
38+
chown -R appuser:appgroup /var/log/xdebug && \
3639
chmod -R 766 /var/log/xdebug; \
3740
fi
3841

@@ -46,7 +49,7 @@ RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
4649
&& php -r "unlink('composer-setup.php');"
4750

4851
# Xdebug (только для dev)
49-
RUN if [ "$APP_ENV" = "dev" ]; then \
52+
RUN if [ "${APP_ENV}" = "dev" ]; then \
5053
pecl install xdebug && \
5154
docker-php-ext-enable xdebug && \
5255
pecl clear-cache \
@@ -56,15 +59,18 @@ RUN if [ "$APP_ENV" = "dev" ]; then \
5659
# Устанавливаем рабочую директорию
5760
WORKDIR /var/www/html
5861

62+
# Устанавливаем пользователя в окружении
63+
USER appuser
64+
5965
# Копируем все файлы
6066
COPY . .
6167

6268
# Устанавливаем зависимости
63-
RUN if [ "$APP_ENV" = "prod" ]; then \
69+
RUN if [ "${APP_ENV}" = "prod" ]; then \
6470
composer install --no-dev --optimize-autoloader --no-interaction --prefer-dist; \
6571
else \
6672
composer install --no-interaction --prefer-dist; \
6773
fi
6874

6975
# Указываем пользователя для выполнения команд
70-
USER ${UID}:${GID}
76+
USER appuser:appgroup

0 commit comments

Comments
 (0)