このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
ソフトウェア:docker:docker-compose.yml_dockerfile_作成例:centos8_mysql8.0 [2020/11/09 18:37] humolife [docker/app/htdocs/.htaccess] |
ソフトウェア:docker:docker-compose.yml_dockerfile_作成例:centos8_mysql8.0 [2020/11/10 12:56] humolife |
||
---|---|---|---|
行 1: | 行 1: | ||
====== CentOS8 + MySQL8.0 の Docker Compose 作成例 ====== | ====== CentOS8 + MySQL8.0 の Docker Compose 作成例 ====== | ||
- | Laravel を載せる用の CentOS8 の app コンテナを作り、MySQL8.0 の db コンテナを作成する例。 | + | Laravel を載せる用の CentOS8 の app コンテナと、MySQL8.0 の db コンテナを作成する例。 |
===== ディレクトリ構成 ===== | ===== ディレクトリ構成 ===== | ||
< | < | ||
行 6: | 行 6: | ||
├ docker | ├ docker | ||
│ ├ app | │ ├ app | ||
- | │ │ ├ htdocs | + | │ │ ├ conf |
- | │ │ │ └ .htaccess | + | │ │ │ ├ html.conf |
+ | │ │ │ └ php74.ini | ||
+ | │ │ ├ conf.d | ||
+ | │ │ │ └ charset.cnf | ||
│ │ └ Dockerfile | │ │ └ Dockerfile | ||
│ ├ db | │ ├ db | ||
│ │ ├ conf.d | │ │ ├ conf.d | ||
- | │ │ │ └ my.cnf | + | │ │ │ └ charset.cnf |
│ │ └ Dockerfile | │ │ └ Dockerfile | ||
│ └ docker-compose.yml | │ └ docker-compose.yml | ||
行 22: | 行 25: | ||
services: | services: | ||
db: | db: | ||
- | container_name: | + | container_name: |
build: ./db/ | build: ./db/ | ||
- | image: | + | image: |
environment: | environment: | ||
MYSQL_ROOT_PASSWORD: | MYSQL_ROOT_PASSWORD: | ||
行 34: | 行 37: | ||
- 3306:3306 | - 3306:3306 | ||
app: | app: | ||
- | container_name: | + | container_name: |
build: ./app/ | build: ./app/ | ||
- | image: | + | image: |
ports: | ports: | ||
- 8080:80 | - 8080:80 | ||
行 53: | 行 56: | ||
FROM centos:8 | FROM centos:8 | ||
- | RUN dnf -y update && \ | + | RUN export LC_ALL=C && \ |
+ | | ||
dnf -y install httpd && \ | dnf -y install httpd && \ | ||
dnf -y install epel-release && \ | dnf -y install epel-release && \ | ||
dnf -y install https:// | dnf -y install https:// | ||
- | | + | |
- | dnf module | + | dnf module -y install |
dnf -y install php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring && \ | dnf -y install php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring && \ | ||
- | dnf -y localinstall https://dev.mysql.com/ | + | dnf -y install @mysql:8.0 && \ |
- | dnf -y install | + | dnf -y install ibus-kkc && \ |
- | dnf -y install | + | dnf -y install |
+ | curl -sL https:// | ||
+ | dnf -y install | ||
- | RUN rm -rf / | + | ENV LANG ja_JP.UTF-8 |
+ | |||
+ | COPY ./ | ||
+ | COPY ./ | ||
+ | COPY ./ | ||
+ | |||
+ | RUN export LANG=ja_JP.utf8 && \ | ||
+ | chmod 644 / | ||
+ | mkdir / | ||
+ | chown apache: | ||
+ | | ||
ln -s / | ln -s / | ||
行 71: | 行 87: | ||
</ | </ | ||
+ | ===== docker/ | ||
+ | < | ||
+ | < | ||
+ | Options Indexes FollowSymLinks | ||
+ | AllowOverride All | ||
+ | Require all granted | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== docker/ | ||
+ | 対応バージョンの php.ini をどこかからコピーしてきて、設定したい内容に書き換えて設置 | ||
+ | |||
+ | ===== docker/ | ||
+ | < | ||
+ | [mysqld] | ||
+ | character-set-server = utf8mb4 | ||
+ | collation-server = utf8mb4_bin | ||
+ | init-connect=' | ||
+ | |||
+ | [client] | ||
+ | loose-default-character-set = utf8mb4 | ||
+ | </ | ||
===== docker/ | ===== docker/ | ||
< | < | ||
- | FROM mysql:latest | + | FROM mysql:8.0 |
- | COPY ./conf.d /etc/mysql/conf.d | + | |
+ | RUN apt-get update && \ | ||
+ | apt-get -y install locales-all && \ | ||
+ | export LC_ALL=ja_JP.UTF-8 | ||
+ | |||
+ | ENV LANG ja_JP.UTF-8 | ||
+ | |||
+ | COPY ./conf.d/ | ||
</ | </ | ||
- | ===== docker/ | + | ===== docker/ |
< | < | ||
[mysqld] | [mysqld] | ||
- | # Character code setting / collation order setting | + | character-set-server |
- | character_set_server=utf8mb4 | + | collation-server = utf8mb4_bin |
- | collation-server=utf8mb4_bin | + | init-connect='set names utf8' |
- | + | ||
- | default_authentication_plugin= mysql_native_password | + | |
- | [mysql] | + | [client] |
- | default-character-set=utf8mb4 | + | loose-default-character-set = utf8mb4 |
</ | </ | ||
行 115: | 行 158: | ||
# app コンテナに入り作業をする | # app コンテナに入り作業をする | ||
- | docker container exec -it laravel_app_sample | + | docker container exec -it project_name_app |
# マウントした production に移動 | # マウントした production に移動 | ||
行 124: | 行 167: | ||
# db コンテナの DB に接続できるか確認 | # db コンテナの DB に接続できるか確認 | ||
- | mysql -h laravel_db_sample | + | mysql -h project_name_db |
</ | </ | ||