#create
docker compose up -d --build
or
docker compose build --no-cache
docker compose up -d
#remove rest
docker compose down -v
---------------------------------------
# start
docker compose start
#shutdown
docker compose stop
#Bash
docker exec -it php_web bash
>>>>NOTE
update docker-compose.yml need up --build
show log on terminal up -d
remove image use down -v
remove container use down
-----------------------------------------------------------------------------
#file1 Dockerfile
FROM php:8.5-apache
RUN apt-get update && apt-get install -y \
git unzip zip libzip-dev libpng-dev libjpeg-dev libfreetype6-dev libicu-dev freetds-dev freetds-bin \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install pdo_mysql mysqli gd zip intl \
&& docker-php-ext-configure pdo_dblib --with-libdir=lib/$(dpkg-architecture -q DEB_HOST_MULTIARCH) \
&& docker-php-ext-install pdo_dblib \
&& rm -rf /var/lib/apt/lists/*
RUN a2enmod rewrite
# Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
# FPDF + FPDI
RUN composer require chillerlan/php-qrcode setasign/fpdf setasign/fpdi --no-interaction --prefer-dist
---------------------------------------------------------------------------------------------------
#file2 docker-compose.yml
services:
web:
build: .
container_name: php_web
ports:
- "80:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
environment:
DB_HOST: db
DB_DATABASE: ${MYSQL_DATABASE}
DB_USERNAME: ${MYSQL_USER}
DB_PASSWORD: ${MYSQL_PASSWORD}
TDSVER: "7.0"
db:
image: mysql:latest
container_name: php_mysql
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- db_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:latest
container_name: php_pma
ports:
- "8080:80"
environment:
PMA_HOST: db
depends_on:
- db
volumes:
db_data:
-------------------------------------------------------------------------
#file3 .env
MYSQL_ROOT_PASSWORD=rootpass
MYSQL_DATABASE=app_db
MYSQL_USER=app_user
MYSQL_PASSWORD=app_pass
---------------------------------------------------------------------------