やりたいこと
docker-composeを試しつつ、3系の書式(主にLongSyntaxでの記述)で書いてみたかったのでメモ
事前準備
Docker-Engineが1.13以降でないと3.3では動かない為、更新を行う
https://docs.docker.com/cs-engine/1.13/
の手順に従ってリポジトリを追加し、インストール
curl -fsSL 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add -
$ sudo add-apt-repository \
"deb https://packages.docker.com/1.13/apt/repo/ \
ubuntu-$(lsb_release -cs) \
main"
$ sudo apt-get update
$ sudo apt-get -y install docker-engine
ymlを記述
docker-compose.yml
version: "3.3"
services:
php:
build:
context: ./php
dockerfile: Dockerfile
depends_on:
- db
volumes:
- type: bind
source: /var/vm/html
target: /var/www/html
ports:
- target: 80
published: 80
protocol: tcp
mode: host
db:
image: mariadb:10 #10.x latest
volumes:
- type: bind
source: /var/vm/db
target: /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ROOTPW
MYSQL_USER: test
MYSQL_PASSWORD: TESTPW
MYSQL_DATABASE: testdb
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
./php/Dockerfile
FROM php:7.1-apache
RUN apt-get update && apt-get install -y \
apt-utils \
zlib1g-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-source extract \
&& docker-php-ext-install pdo pdo_mysql \
&& docker-php-ext-install zip \
&& docker-php-ext-install opcache
RUN pecl install apcu
RUN echo "extension=apcu.so" > /usr/local/etc/php/conf.d/apcu.ini
雑感
単体で起動するよりもシンプルに記述が出来て素晴らしい…
ymlファイルの記述は3.2以降で冗長的に記述できるようになったようで
ドキュメント込みで残す場合には有りなのかな?
修正
phpのオフィシャルコンテナではmysqlが有効でなかった為、コンテナのbuildを追加