-
-
Save funkytaco/dd6132b25c7953b582424e03daa17678 to your computer and use it in GitHub Desktop.
π³π³ Laravel Docker Compose π³π³
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3.3' | |
networks: | |
my-network-dockerApp: | |
services: | |
db: | |
image: mysql:latest | |
container_name: mysql | |
command: --default-authentication-plugin=mysql_native_password | |
restart: always | |
ports: | |
- '6603:3306' | |
environment: | |
MYSQL_DATABASE: 'laraapp_db' | |
MYSQL_ALLOW_EMPTY_PASSWORD: 1 | |
MYSQL_ROOT_PASSWORD: "" | |
# or | |
# MYSQL_DATABASE: "" | |
# MYSQL_USER: "" | |
# MYSQL_ROOT_PASSWORD: "" | |
# MYSQL_PASSWORD: "" | |
volumes: | |
- ./mysql/data:/var/lib/mysql | |
# - /.docker/db_backup:/docker-entrypoint-initdb.d | |
# # - ./mysql/config:/etc/mysql | |
networks: | |
- my-network-dockerApp | |
db-management: | |
depends_on: | |
- db | |
image: phpmyadmin/phpmyadmin | |
container_name: phpmyadmin | |
restart: always | |
ports: | |
- '6601:80' | |
environment: | |
PMA_HOST: db | |
networks: | |
- my-network-dockerApp | |
redis: | |
image: redis:alpine | |
container_name: redis | |
restart: always | |
ports: | |
- "6379:6379" | |
volumes: | |
- ./redis/data:/data | |
# - ./redis-etc:/usr/local/etc/redis | |
networks: | |
- my-network-dockerApp | |
app: | |
build: | |
context: . | |
dockerfile: ./php-apache-Dockerfile/Dockerfile | |
image: 'laravel-app' | |
container_name: 'app-setup' | |
restart: always | |
depends_on: | |
- db | |
- db-management | |
- redis | |
ports: | |
- 8088:80 | |
volumes: | |
- ./html/:/var/www/html | |
networks: | |
- my-network-dockerApp | |
app-queue: | |
build: | |
context: . | |
dockerfile: ./laravel-queue-Dockerfile/Dockerfile | |
image: 'laravel-queue' | |
restart: always | |
depends_on: | |
- app | |
container_name: 'app-laravel-queue' | |
ports: | |
- 8090:80 | |
volumes: | |
- ./html/:/var/www/html | |
networks: | |
- my-network-dockerApp | |
app-scheduler: | |
build: | |
context: . | |
dockerfile: ./laravel-scheduler-Dockerfile/Dockerfile | |
image: 'laravel-scheduler' | |
restart: always | |
depends_on: | |
- app | |
container_name: 'app-laravel-scheduler' | |
ports: | |
- 8091:80 | |
volumes: | |
- ./html/:/var/www/html | |
networks: | |
- my-network-dockerApp | |
# app-scheduler: | |
# build: | |
# context: . | |
# dockerfile: ./laravel-scheduler-Dockerfile/Dockerfile | |
# image: 'laravel-scheduler' | |
# container_name: 'app-laravel-scheduler' | |
# ports: | |
# - 8089:80 | |
# volumes: | |
# - ./:/var/www/docker-link | |
# networks: | |
# - my-network-dockerApp | |
# app-queue: | |
# build: | |
# context: . | |
# dockerfile: ./laravel-queue-Dockerfile/Dockerfile | |
# image: 'laravel-queue' | |
# container_name: 'app-laravel-queue' | |
# ports: | |
# - 8090:80 | |
# volumes: | |
# - ./:/var/www/docker-link | |
# networks: | |
# - my-network-dockerApp | |
# version: '3.3' | |
# services: | |
# php-pure: | |
# image: php:7.4-fpm-alpine | |
# restart: always | |
# tty: true | |
# working_dir: /var/www | |
# volumes: | |
# - ./code:/var/www | |
# - ./local.ini:/usr/local/etc/php/conf.d/local.ini | |
# networks: | |
# auth-networks: | |
# # php: | |
# # networks: | |
# # - my-network-dockerApp | |
# # container_name: language-php | |
# # build: | |
# # context: . | |
# # dockerfile: Dockerfile | |
# # restart: always | |
# # ports: | |
# # - "9000:9000" | |
# # nginx: | |
# # networks: | |
# # - my-network-dockerApp | |
# # container_name: webserver-nginx | |
# # depends_on: | |
# # - php | |
# # - mysql | |
# # image: nginx:latest | |
# # restart: always | |
# # volumes: | |
# # - ./:/var/html/ | |
# # - ./nginx/default.conf:/etc/nginx/conf.d/default.conf | |
# # ports: | |
# # - "8088:80" | |
# # - "4443:443" | |
# mysql: | |
# networks: | |
# - my-network-dockerApp | |
# container_name: database-mysql | |
# image: mysql:latest | |
# restart: always | |
# tty: true | |
# ports: | |
# - "4306:3306" | |
# environment: | |
# MYSQL_ROOT_PASSWORD: root | |
# MYSQL_DATABASE: test-db | |
# MYSQL_USER: root | |
# MYSQL_PASSWORD: root | |
# phpmyadmin: | |
# networks: | |
# - my-network-dockerApp | |
# container_name: database-phpmyadmin | |
# image: phpmyadmin/phpmyadmin | |
# restart: always | |
# ports: | |
# - 8090:80 | |
# environment: | |
# PMA_HOST : mysql | |
# networks: | |
# my-network-dockerApp: | |
## It workes tested | |
# version: '3.3' | |
# services: | |
# db: | |
# image: mysql:latest | |
# container_name: appsDB | |
# restart: always | |
# ports: | |
# - '6603:3306' | |
# environment: | |
# MYSQL_ROOT_PASSWORD: helloworld | |
# app: | |
# depends_on: | |
# - db | |
# image: phpmyadmin/phpmyadmin | |
# container_name: phpmyadmin | |
# restart: always | |
# ports: | |
# - '8081:80' | |
# environment: | |
# PMA_HOST: db | |
# | |
### It workes tested properly | |
# version: '3.3' | |
# services: | |
# php: | |
# image: php:7.4-apache | |
# ports: | |
# - 8088:80 | |
# volumes: | |
# - ./html:/var/www/html/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##################################### | |
# | |
# php:7.4-apache setup | |
# | |
##################################### | |
FROM php:7.4-apache | |
USER root | |
WORKDIR /var/www/html | |
##################################### | |
# Install Node Js | |
##################################### | |
RUN rm -rf /var/lib/apt/lists/* && curl -sL https://deb.nodesource.com/setup_14.x | bash - | |
RUN apt-get install nodejs -y | |
RUN rm -rf /var/lib/apt/lists/* | |
##################################### | |
# Install svgo | |
##################################### | |
RUN npm install -g svgo | |
##################################### | |
# Installing tools & lib | |
##################################### | |
RUN apt-get update && apt-get install -y \ | |
libicu-dev \ | |
libbz2-dev \ | |
libjpeg-dev \ | |
libmemcached-dev \ | |
libpng-dev \ | |
libwebp-dev \ | |
libmcrypt-dev \ | |
libreadline-dev \ | |
libfreetype6-dev \ | |
zlib1g-dev \ | |
libxml2-dev \ | |
libz-dev \ | |
libssl-dev \ | |
libzip-dev \ | |
libonig-dev \ | |
libpq-dev \ | |
zip \ | |
curl \ | |
unzip \ | |
git \ | |
sudo \ | |
g++\ | |
vim \ | |
nano \ | |
supervisor \ | |
jpegoptim \ | |
optipng \ | |
pngquant \ | |
gifsicle \ | |
&& rm -rf /var/lib/apt/lists/* | |
##################################### | |
# Install PHP extensions | |
##################################### | |
RUN docker-php-ext-install \ | |
bz2 \ | |
intl \ | |
iconv \ | |
bcmath \ | |
opcache \ | |
calendar \ | |
mbstring \ | |
pdo\ | |
pdo_mysql \ | |
pdo_pgsql \ | |
mysqli \ | |
zip \ | |
pcntl \ | |
sockets \ | |
gettext\ | |
exif\ | |
&& docker-php-ext-configure gd \ | |
&& docker-php-ext-install -j$(nproc) gd \ | |
&& docker-php-source delete | |
##################################### | |
# mcrypt: | |
##################################### | |
RUN pecl install mcrypt\ | |
&& docker-php-ext-enable mcrypt | |
##################################### | |
# Memcached: | |
##################################### | |
RUN pecl install memcached \ | |
&& docker-php-ext-enable memcached | |
##################################### | |
# REDIS | |
##################################### | |
RUN pecl install redis \ | |
&& docker-php-ext-enable redis | |
##################################### | |
# PSR | |
##################################### | |
RUN pecl install psr \ | |
&& docker-php-ext-enable psr | |
##################################### | |
# ImageMagick: | |
##################################### | |
USER root | |
RUN apt-get update -y && \ | |
apt-get install -y libmagickwand-dev imagemagick && \ | |
pecl install imagick && \ | |
docker-php-ext-enable imagick | |
#################################### | |
# Apache Configration | |
#################################### | |
# COPY ./vhost.conf /etc/apache2/sites-available/000-default.conf | |
ENV APACHE_DOCUMENT_ROOT /var/www/html/public | |
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf | |
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf | |
#################################### | |
# Composer | |
#################################### | |
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | |
#################################### | |
# Clear Cache | |
#################################### | |
RUN apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& docker-php-source delete \ | |
&& pecl clear-cache | |
RUN chown -R www-data:www-data /var/www/html \ | |
&& a2enmod rewrite | |
RUN a2enmod rewrite headers | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment