ユーザ用ツール

サイト用ツール


ソフトウェア:docker:docker-compose.yml_dockerfile_作成例:centos8_mysql8.0

文書の過去の版を表示しています。


CentOS8 + MySQL8.0 の Docker Compose 作成例

Laravel を載せる用の CentOS8 の app コンテナを作り、MySQL8.0 の db コンテナを作成する例。

ディレクトリ構成

  1. project
  2. docker
  3. app
  4. htdocs
  5. .htaccess
  6. Dockerfile
  7. db
  8. conf.d
  9. my.cnf
  10. Dockerfile
  11. docker-compose.yml
  12. production // appコンテナに載せるプログラムファイルを格納

docker/docker-compose.yml

  1. version: '3'
  2. services:
  3. db:
  4. container_name: laravel_db_sample
  5. build: ./db/
  6. image: laravel_db_sample
  7. environment:
  8. MYSQL_ROOT_PASSWORD: pass
  9. MYSQL_DATABASE: laravel_db
  10. MYSQL_USER: docker
  11. MYSQL_PASSWORD: docker
  12. TZ: 'Asia/Tokyo'
  13. ports:
  14. - 3306:3306
  15. app:
  16. container_name: laravel_app_sample
  17. build: ./app/
  18. image: laravel_app_sample
  19. ports:
  20. - 8080:80
  21. volumes:
  22. - ../production:/var/www/production/
  23. tty: true
  24. stdin_open: true
  25. privileged: true
  26. command: /sbin/init
  27. depends_on:
  28. - db

docker/app/Dockerfile

  1. FROM centos:8
  2.  
  3. RUN dnf -y update && \
  4. dnf -y install httpd && \
  5. dnf -y install epel-release && \
  6. dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && \
  7. rpm -ivh http://ftp.riken.jp/Linux/remi/enterprise/remi-release-8.rpm && \
  8. dnf module install -y php:remi-7.4 && \
  9. dnf -y install php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring && \
  10. dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \
  11. dnf -y install mysql-server && \
  12. dnf -y install crontabs
  13.  
  14. RUN rm -rf /var/www/html && \
  15. ln -s /var/www/production/public /var/www/html
  16.  
  17. # httpd
  18. RUN systemctl enable httpd

docker/db/Dockerfile

  1. FROM mysql:8.0
  2.  
  3. RUN apt-get update && \
  4. apt-get -y install locales-all
  5.  
  6. ENV LANG ja_JP.UTF-8 \
  7. LANGUAGE ja_JP:ja
  8.  
  9. COPY ./conf.d/charset.cnf /etc/my.cnf.d/charset.cnf

docker/db/conf.d/my.cnf

  1. [mysqld]
  2. # Character code setting / collation order setting
  3. character_set_server=utf8mb4
  4. collation-server=utf8mb4_bin
  5.  
  6. default_authentication_plugin= mysql_native_password
  7.  
  8. [mysql]
  9. default-character-set=utf8mb4

コマンドの実行

Docker Quickstart Terminal を起動する。

  1. # project/docker ディレクトリへ移動
  2. cd project/docker
  3.  
  4. # コンテナの作成&起動
  5. # -d をつけることでバックグラウンドでコンテナを起動
  6. # --build をつけることでイメージを作成
  7. docker-compose up -d --build
  8.  
  9. # コンテナの一覧を確認
  10. docker-compose ps
  11.  
  12. # IP アドレスを調べる
  13. docker-machine ip
  14.  
  15. # 192.168.99.100 なら、以下でアクセス可能になる
  16. # http://192.168.99.100:8080
  17.  
  18. # 2回め以降は、バックグラウンドでコンテナを起動するだけでよい
  19. docker-compose up -d
  20.  
  21. # app コンテナに入り作業をする
  22. docker container exec -it laravel_app_sample /bin/bash
  23.  
  24. # マウントした production に移動
  25. cd /var/www/production/
  26.  
  27. # production ディレクトリ内のファイルが共有されているか確認
  28. ls -l
  29.  
  30. # db コンテナの DB に接続できるか確認
  31. mysql -h laravel_db_sample --port 3306 -u docker -pdocker -D laravel_db

コメント

コメントを入力. Wiki文法が有効です:
 
ソフトウェア/docker/docker-compose.yml_dockerfile_作成例/centos8_mysql8.0.1604914682.txt.gz · 最終更新: 2020/11/09 18:38 by humolife