ユーザ用ツール

サイト用ツール


サイドバー

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

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


CentOS8 + MySQL8.0 の Docker Compose 作成例

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

ディレクトリ構成

project
├ docker
│ ├ app
│ │ ├ htdocs
│ │ │ └ .htaccess
│ │ └ Dockerfile
│ ├ db
│ │ ├ conf.d
│ │ │ └ my.cnf
│ │ └ Dockerfile
│ └ docker-compose.yml
└ production  // appコンテナに載せるプログラムファイルを格納

docker/docker-compose.yml

version: '3'
services:
  db:
    container_name: laravel_db_sample
    build: ./db/
    image: laravel_db_sample
    environment:
      MYSQL_ROOT_PASSWORD: pass
      MYSQL_DATABASE: laravel_db
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: 'Asia/Tokyo'
    ports:
      - 3306:3306
  app:
    container_name: laravel_app_sample
    build: ./app/
    image: laravel_app_sample
    ports:
      - 8080:80
    links:
      - db:laravel_db_sample
    volumes:
      - ../production:/var/www/production/
    tty: true
    stdin_open: true
    privileged: true
    command: /sbin/init
    depends_on:
      - db

docker/app/Dockerfile

FROM centos:latest

RUN dnf -y update && dnf -y install httpd

RUN dnf -y install epel-release

RUN dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

RUN rpm -ivh http://ftp.riken.jp/Linux/remi/enterprise/remi-release-8.rpm

RUN dnf module install -y php:remi-7.3
RUN dnf install -y php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring

COPY ./htdocs/.htaccess /var/www/html/.htaccess

RUN ln -s /var/www/production/public /var/www/html/pj

# MySQL
RUN dnf -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

RUN dnf -y install mysql-server

# cron
RUN dnf -y install crontabs

# httpd
RUN systemctl enable httpd

docker/app/htdocs/.htaccess

RewriteEngine On
RewriteRule ^(.*)$ pj/$1 [QSA,L]

docker/db/Dockerfile

FROM mysql:latest
COPY ./conf.d /etc/mysql/conf.d

docker/db/conf.d/my.cnf

[mysqld]
# Character code setting / collation order setting
character_set_server=utf8mb4
collation-server=utf8mb4_bin

default_authentication_plugin= mysql_native_password

[mysql]
default-character-set=utf8mb4

コマンドの実行

Docker Quickstart Terminal を起動する。

# project/docker ディレクトリへ移動
cd project/docker

# コンテナの作成&起動
# -d をつけることでバックグラウンドでコンテナを起動
# --build をつけることでイメージを作成
docker-compose up -d --build

# コンテナの一覧を確認
docker-compose ps

# IP アドレスを調べる
docker-machine ip

# 192.168.99.100 なら、以下でアクセス可能になる
http://192.168.99.100:8080

# 2回め以降は、バックグラウンドでコンテナを起動するだけでよい
docker-compose up -d

# app コンテナに入り作業をする
docker container exec -it laravel_app_sample /bin/bash

# マウントした production に移動
cd /var/www/production/

# production ディレクトリ内のファイルが共有されているか確認
ls -l

# db コンテナの DB に接続できるか確認
mysql -h laravel_db_sample --port 3306 -u docker -pdocker -D laravel_db

コメント

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