docker-compose コマンド
Docker 全てのコンテナを開始
docker-compose start
Docker 全てのコンテナを停止
docker-compose stop
Dockerfile
FROM alpine:3.20.0
ENV PATH $PATH:/usr/bin
ENV LANG ja_JP.utf8
# 起動スクリプト
ADD setup/run.sh /scripts/run.sh
ADD setup/httpd.conf /etc/apache2/httpd.conf
ADD setup/default.conf /etc/apache2/conf.d/default.conf
ADD setup/ssl.conf /etc/apache2/conf.d/ssl.conf
ADD setup/mpm.conf /etc/apache2/conf.d/mpm.conf
ADD setup/xdebug.ini /tmp/xdebug.ini
ADD setup/xdebug_testing.ini /tmp/xdebug_testing.ini
ADD setup/upload.ini /etc/php83/conf.d/upload.ini
ADD setup/supervisord.ini /etc/supervisor.d/supervisord.ini
ADD setup/crontab /tmp/crontab
WORKDIR /var/www/localhost
RUN apk --update --no-cache add \
php83 \
php83-apache2 \
php83-phar \
php83-openssl \
php83-mbstring \
php83-pdo \
php83-pdo_mysql \
php83-tokenizer \
php83-xml \
php83-dom \
php83-xmlwriter \
php83-xmlreader \
php83-session \
php83-ctype \
php83-opcache \
php83-pecl-xdebug \
php83-simplexml \
php83-fileinfo \
php83-gd \
php83-curl \
php83-iconv \
php83-zip \
php83-gmp \
php83-exif \
imagemagick \
php83-pecl-imagick \
apache2-ssl \
apache2-utils \
libpng-dev \
autoconf \
automake \
libtool \
nasm \
gifsicle \
libjpeg-turbo-utils \
optipng \
pngquant \
file \
gd \
bash \
curl \
nodejs \
npm \
tzdata \
sudo \
git \
python3 \
g++ \
make \
vim \
mariadb-dev \
mariadb-client \
supervisor \
&& curl -sS https://getcomposer.org/installer | /usr/bin/php83 -- --install-dir=/usr/local/bin --filename=composer \
&& chmod 755 /usr/local/bin/composer \
&& ln -nfs /usr/share/zoneinfo/Japan /etc/localtime \
&& mkdir -p /scripts/pre-exec.d \
&& mkdir -p /scripts/pre-init.d \
&& mkdir -p /run/apache2 \
&& chmod -R 755 /scripts
EXPOSE 80
ENTRYPOINT ["/xxxxxx.sh"]
docker-compose.yml
version: "3"
services:
cstang_mysql_cstang_product:
container_name: cstang-db-cstang_product
image: mysql:8.0
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/entrypoint/cstang_product:/docker-entrypoint-initdb.d"
- "./mysql/db/cstang_product/data:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=cstang_cstang_product
- MYSQL_USER=cstang
- MYSQL_PASSWORD=cstang
networks:
- default
- cstangnet
restart: always
phpmyadmin:
container_name: cstang-phpmyadmin
image: phpmyadmin/phpmyadmin
volumes:
- "./setup/upload.ini:/usr/local/etc/php/conf.d/upload.ini"
environment:
- PMA_ARBITRARY=0
- PMA_HOSTS=cstang_mysql_cstang_product
links:
- cstang_mysql_cstang_product
external_links:
- media_mysql_cstang_product:cstangnet
ports:
- 12901:80
networks:
- default
- cstangnet
restart: always
web_public:
container_name: cstang.dev.cstang.com
build:
context: "./"
dockerfile: "Dockerfile"
volumes:
- "./:/var/www/localhost"
environment:
- APP_ENV=local_web_public
links:
- api_cstang_product
- redis
ports:
- 12000:80
- 12443:443
networks:
- default
- cstangnet
restart: always
web_admin:
container_name: cstang.admin.dev.cstang.com
build:
context: "./"
dockerfile: "Dockerfile"
volumes:
- "./:/var/www/localhost"
environment:
- APP_ENV=local_web_admin
links:
- api_cstang_product
- redis
ports:
- 12001:80
- 12444:443
networks:
- default
- cstangnet
restart: always
api_cstang_product:
container_name: cstang-api-cstang_product
build:
context: "./"
dockerfile: "Dockerfile"
volumes:
- "./:/var/www/localhost"
environment:
- APP_ENV=local_api_cstang_product
links:
- cstang_mysql_cstang_product
ports:
- 12003:80
- 12445:443
networks:
- default
- cstangnet
restart: always
redis:
container_name: cstang-redis
command: redis-server --appendonly yes
image: redis:alpine
ports:
- 6379:6379
networks:
- default
- cstangnet
restart: always
redisCommander:
container_name: cstang-redis-commander
image: rediscommander/redis-commander
environment:
- REDIS_HOSTS=cstang-redis
links:
- redis:redis
ports:
- '12902:8081'
restart: always
task:
container_name: cstang-task
build:
context: "./"
dockerfile: "Dockerfile"
volumes:
- "./:/var/www/localhost"
environment:
- APP_ENV=local_task
links:
- api_cstang_product
networks:
- default
- cstangnet
restart: always
testing:
container_name: cstang-testing
build:
context: "./"
dockerfile: "Dockerfile"
volumes:
- "./:/var/www/localhost"
environment:
- APP_ENV=testing
links:
- web_public
- web_admin
- api_cstang_product
- cstang_mysql_cstang_product
restart: always
selenium:
container_name: selenium
image: selenium/standalone-chrome:latest
networks:
- default
- cstangnet
restart: always
shm_size: '256mb'