文書の過去の版を表示しています。
Laravel を載せる用の CentOS8 の app コンテナを作り、MySQL8.0 の db コンテナを作成する例。
project ├ docker │ ├ app │ │ ├ htdocs │ │ │ └ .htaccess │ │ └ Dockerfile │ ├ db │ │ ├ conf.d │ │ │ └ my.cnf │ │ └ Dockerfile │ └ docker-compose.yml └ production // appコンテナに載せるプログラムファイルを格納
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
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
RewriteEngine On RewriteRule ^(.*)$ pj/$1 [QSA,L]
FROM mysql:latest COPY ./conf.d /etc/mysql/conf.d
[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
コメント