Eu estive enfrentando algumas dificuldades na hora de dockerizar o projeto do curso por conta de permissões que o Apache impõe. Mas cheguei numa possível solução, não sei se é a melhor, de definir tais permissões logo no Dockerfile. Deixo o arquivo logo abaixo e queria saber se tem uma solução melhor ou mesmo outra imagem que pudesse utilizar para não se fazer tal gambiarra.
FROM php:8.0-apache
RUN a2enmod rewrite
RUN apt update && apt install -y zlib1g-dev g++ libicu-dev zip libzip-dev zip libpq-dev \
&& docker-php-ext-install intl opcache pdo pgsql pdo_pgsql \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
&& docker-php-ext-configure zip \
&& docker-php-ext-install zip
WORKDIR /var/www/blog
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN addgroup --gid 1000 appuser; \
adduser --uid 1000 --gid 1000 --disabled-password appuser; \
adduser www-data appuser; \
sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf; \
service apache2 restart;
E o docker-compose caso seja de alguma ajuda
version: '3.8'
services:
database:
image: postgres
container_name: database
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- '5432:5432'
php-apache:
container_name: web
build:
context: ./php
ports:
- '8080:80'
volumes:
- ./src:/var/www/blog
- ./apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
depends_on:
- database