Skip to content

Instantly share code, notes, and snippets.

@DesolatorMagno
Last active October 18, 2023 16:38
Show Gist options
  • Save DesolatorMagno/bf9d41a7a4f4d545b4894b6da4d1e1c0 to your computer and use it in GitHub Desktop.
Save DesolatorMagno/bf9d41a7a4f4d545b4894b6da4d1e1c0 to your computer and use it in GitHub Desktop.
COMPOSE_PROJECT_NAME=Cool_Project
DB_PASSWORD=mypassword
DB_DATABASE=database_name
DB_USERNAME=user_name
DB_PORT=3306
DB_PORT_FORWARD=3307
#for implementantion
WEB_PORT=80
SSL_PORT=443
ADMINER_PORT=8081
#not in use
DB_HOST=db
###############################################################################
# ❤️ With Love from me ❤️ #
###############################################################################
version: "3.3"
services:
#PHP Service
php:
build: phpdocker/php-fpm
container_name: ${COMPOSE_PROJECT_NAME}-php
#restart: unless-stopped
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
environment:
- "DB_PORT=${DB_PORT}"
- "DB_HOST=db"
depends_on:
db:
condition: service_healthy
links:
- db
#MySQL Service
db:
image: mysql:5.7
deploy:
resources:
limits:
cpus: '1'
memory: 300m
command: --default-authentication-plugin=mysql_native_password
container_name: ${COMPOSE_PROJECT_NAME}-db-1
working_dir: /application
restart: unless-stopped
volumes:
#- .:/application
- ./phpdocker/db:/docker-entrypoint-initdb.d
- projectNameSqlData:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
ports:
- "${DB_PORT_FORWARD}:${DB_PORT}"
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_ROOT_PASSWORD
interval: 5s
retries: 10
#Nginx Service
webserver:
image: nginx:alpine
container_name: ${COMPOSE_PROJECT_NAME}-webserver-1
working_dir: /application
depends_on:
db:
condition: service_healthy
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "${WEB_PORT}:80"
- "443:443"
adminer:
image: adminer
depends_on:
db:
condition: service_healthy
container_name: ${COMPOSE_PROJECT_NAME}-adminer
#restart: unless-stopped
ports:
- "${ADMINER_PORT}:8080"
# Volumes
volumes:
projectSqlNameData:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment