diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..c21b5e61d53275a308b610f4807190c49a78f87d --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +docker/ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..eb366226a2c45a7006a9aa77d5fb82d877937c41 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,54 @@ +version: "3.8" +services: + + db: + image: mysql:8.1.0 + container_name: db_docker_symfony + restart: always + volumes: + - ./server/mysql_data:/var/lib/mysql #this line maps the content of ./server/mysql_data in your pc to the /var/lib/mysql of the container + environment: + MYSQL_ROOT_PASSWORD: root_PWD-iaw #you can change the mysql root password here + #MYSQL_DATABASE: lamp_db #you can change the database name here + MYSQL_USER: mysqlAdmin #you can change the user name here + MYSQL_PASSWORD: adminPwd #you can change the user password here + networks: + - dev + + phpmyadmin: + image: phpmyadmin + container_name: phpmyadmin_docker_symfony + restart: always + depends_on: + - db + ports: + - 8080:80 + environment: + PMA_HOST: db + networks: + - dev + + maildev: + image: maildev/maildev + container_name: maildev_docker_symfony + command: bin/maildev --web 80 --smtp 25 --hide-extensions STARTTLS + ports: + - "8081:80" + restart: always + networks: + - dev + + www: + build: php + container_name: www_docker_symfony + ports: + - "80:80" + volumes: + - ./php/vhosts:/etc/apache2/sites-enabled + - ../:/var/www + restart: always + networks: + - dev + +networks: + dev: diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..feb00d622a4467a93c1b715b5fd5a91678344377 --- /dev/null +++ b/docker/php/Dockerfile @@ -0,0 +1,23 @@ +FROM php:8.2-apache + +RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + locales apt-utils git libicu-dev g++ libpng-dev libxml2-dev libzip-dev libonig-dev libxslt-dev unzip + +RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ + && echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen \ + && locale-gen + +RUN curl -sS https://getcomposer.org/installer | php -- \ + && mv composer.phar /usr/local/bin/composer + +RUN curl -sS https://get.symfony.com/cli/installer | bash \ + && mv /root/.symfony5/bin/symfony /usr/local/bin/symfony + +RUN docker-php-ext-configure intl +RUN docker-php-ext-install pdo pdo_mysql opcache intl zip calendar dom mbstring gd xsl +RUN pecl install apcu && docker-php-ext-enable apcu + +WORKDIR /var/www/ \ No newline at end of file diff --git a/docker/php/vhosts/vhosts.conf b/docker/php/vhosts/vhosts.conf new file mode 100644 index 0000000000000000000000000000000000000000..12be807ce7ceda2b0e70f2ced461ba508eeaf07e --- /dev/null +++ b/docker/php/vhosts/vhosts.conf @@ -0,0 +1,34 @@ +<VirtualHost *:80> + ServerName localhost + + DocumentRoot /var/www/project/public + DirectoryIndex /index.php + + <Directory /var/www/project/public> + AllowOverride None + Order Allow,Deny + Allow from All + + FallbackResource /index.php + </Directory> + + # uncomment the following lines if you install assets as symlinks + # or run into problems when compiling LESS/Sass/CoffeeScript assets + # <Directory /var/www/project> + # Options FollowSymlinks + # </Directory> + + # optionally disable the fallback resource for the asset directories + # which will allow Apache to return a 404 error when files are + # not found instead of passing the request to Symfony + <Directory /var/www/project/public/bundles> + FallbackResource disabled + </Directory> + ErrorLog /var/log/apache2/project_error.log + CustomLog /var/log/apache2/project_access.log combined + + # optionally set the value of the environment variables used in the application + #SetEnv APP_ENV prod + #SetEnv APP_SECRET <app-secret-id> + #SetEnv DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name" +</VirtualHost>