ユーザ用ツール

サイト用ツール


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

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ソフトウェア:docker:docker-compose.yml_dockerfile_作成例:centos8_mysql8.0 [2019/10/30 11:27]
humolife
ソフトウェア:docker:docker-compose.yml_dockerfile_作成例:centos8_mysql8.0 [2020/11/10 16:34] (現在)
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 コンテナを作成する例。
 ===== ディレクトリ構成 ===== ===== ディレクトリ構成 =====
 <code> <code>
行 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: laravel_db_sample+    container_name: project_name_db
     build: ./db/     build: ./db/
-    image: laravel_db_sample+    image: laravel_mysql80_db
     environment:     environment:
       MYSQL_ROOT_PASSWORD: pass       MYSQL_ROOT_PASSWORD: pass
行 34: 行 37:
       - 3306:3306       - 3306:3306
   app:   app:
-    container_name: laravel_app_sample+    container_name: project_name_app
     build: ./app/     build: ./app/
-    image: laravel_app_sample+    image: laravel_centos8_php74_app
     ports:     ports:
       - 8080:80       - 8080:80
-    links: 
-      - db:laravel_db_sample 
     volumes:     volumes:
       - ../production:/var/www/production/       - ../production:/var/www/production/
行 53: 行 54:
 ===== docker/app/Dockerfile ===== ===== docker/app/Dockerfile =====
 <code> <code>
-FROM centos:latest+FROM centos:8
  
-RUN dnf -y update && dnf -y install httpd+RUN export LC_ALL=C && \ 
 +    dnf -y update && 
 +    dnf -y install httpd && \ 
 +    dnf -y install epel-release && \ 
 +    dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && \ 
 +    dnf -y install http://ftp.riken.jp/Linux/remi/enterprise/remi-release-8.rpm && \ 
 +    dnf module -y install php:remi-7.4  && \ 
 +    dnf -y install php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring && \ 
 +    dnf -y install @mysql:8.0 && \ 
 +    dnf -y install ibus-kkc && \ 
 +    dnf -y install langpacks-ja && \ 
 +    curl -sL https://rpm.nodesource.com/setup_14.x | bash - && \ 
 +    dnf -y install nodejs
  
-RUN dnf -y install epel-release+ENV LANG ja_JP.UTF-8
  
-RUN dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm+COPY ./conf/html.conf /etc/httpd/conf.d/html.conf 
 +COPY ./conf/php74.ini /etc/php.ini 
 +COPY ./conf.d/charset.cnf /etc/my.cnf.d/charset.cnf
  
-RUN rpm -ivh http://ftp.riken.jp/Linux/remi/enterprise/remi-release-8.rpm +RUN export LANG=ja_JP.utf8 && \ 
- +    chmod 644 /etc/httpd/conf.d/html.conf && \ 
-RUN dnf module install -y php:remi-7.3 +    mkdir /var/log/php && \ 
-RUN dnf install -y php-pdo php-json php-xml php-mysqlnd php-gd php-mbstring +    chown apache:apache /var/log/php && \ 
- +    rm -rf /var/www/html && \ 
-COPY ./htdocs/.htaccess /var/www/html/.htaccess +    ln -s /var/www/production/public /var/www/html
- +
-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 # httpd
行 82: 行 87:
 </code> </code>
  
-===== docker/app/htdocs/.htaccess =====+===== docker/app/conf/html.conf =====
 <code> <code>
-RewriteEngine On +<Directory "/var/www/html"> 
-RewriteRule ^(.*)$ pj/$1 [QSA,L]+    Options Indexes FollowSymLinks 
 +    AllowOverride All 
 +    Require all granted 
 +</Directory> 
 +</code> 
 + 
 +===== docker/app/conf/php74.ini ===== 
 +対応バージョンの php.ini をどこかからコピーしてきて、設定したい内容に書き換えて設置 
 + 
 +===== docker/app/conf.d/charset.cnf ===== 
 +<code> 
 +[mysqld] 
 +character-set-server = utf8mb4 
 +collation-server = utf8mb4_bin 
 +init-connect='set names utf8' 
 + 
 +[client] 
 +loose-default-character-set = utf8mb4
 </code> </code>
  
 ===== docker/db/Dockerfile ===== ===== docker/db/Dockerfile =====
 <code> <code>
-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/charset.cnf /etc/my.cnf.d/charset.cnf
 </code> </code>
  
-===== docker/db/conf.d/my.cnf =====+===== docker/db/conf.d/charset.cnf =====
 <code> <code>
 [mysqld] [mysqld]
-# Character code setting / collation order setting +character-set-server = utf8mb4 
-character_set_server=utf8mb4 +collation-server = utf8mb4_bin 
-collation-server=utf8mb4_bin+init-connect='set names utf8'
  
-default_authentication_plugin= mysql_native_password +[client
- +loose-default-character-set = utf8mb4
-[mysql+
-default-character-set=utf8mb4+
 </code> </code>
  
行 113: 行 140:
 cd project/docker cd project/docker
  
-# --build をつけることでイメージを構築し +# コンテナ作成&起動 
-# コンテナ作成-d をつけることでバックグラウンドでコンテナを起動+-d をつけることでバックグラウンドでコンテナを起動 
 +# --build をつけることでイメージを作成
 docker-compose up -d --build docker-compose up -d --build
  
行 124: 行 152:
  
 # 192.168.99.100 なら、以下でアクセス可能になる # 192.168.99.100 なら、以下でアクセス可能になる
-http://192.168.99.100:8080+http://192.168.99.100:8080
  
 # 2回め以降は、バックグラウンドでコンテナを起動するだけでよい # 2回め以降は、バックグラウンドでコンテナを起動するだけでよい
行 130: 行 158:
  
 # app コンテナに入り作業をする # app コンテナに入り作業をする
-docker container exec -it laravel_app_sample /bin/bash+docker container exec -it project_name_app /bin/bash
  
 # マウントした production に移動 # マウントした production に移動
行 137: 行 165:
 # production ディレクトリ内のファイルが共有されているか確認 # production ディレクトリ内のファイルが共有されているか確認
 ls -l ls -l
-</code> 
  
 +# db コンテナの DB に接続できるか確認
 +mysql -h project_name_db --port 3306 -u docker -pdocker -D laravel_db
 +</code>
 +これでローカルで Laravel を動かすための環境が整いました。\\
 +次は Laravel のインストールを行います。\\
 +⇒ [[プログラム言語:php:laravel:インストール:laravel7|Laravel 7 のインストール]]
ソフトウェア/docker/docker-compose.yml_dockerfile_作成例/centos8_mysql8.0.1572402475.txt.gz · 最終更新: 2019/10/30 11:27 by humolife