windows10 docker操作

docker-compose コマンド

  • 下記をdocker-compose.ymlがあるディレクトリで実行する。

    Docker 全てのコンテナを再ビルドして起動する

    docker-compose down && docker-compose build && docker-compose up -d

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'