0
respostas

Permissões do Apache em projeto Laravel Dockerizado

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software