2018年2月21日水曜日

dockerでBolt、MySQLがインストールされたコンテナのイメージを作成する

BoltはPHP製のCMSです。
以下の手順で、Bolt、MySQLのコンテナを構築・実行します。

○構築方法
1. Boltイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t bolt .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7 php7-mysqli php7-pdo php7-pdo_mysql php7-mbstring php7-session php7-curl php7-json php7-xml php7-zip php7-ctype php7-dom php7-simplexml php7-iconv php7-tokenizer php7-intl php7-posix openssl openrc \
  && rm -rf /var/cache/apk/* \
  && wget  https://bolt.cm/distribution/bolt-latest.tar.gz \
  && tar -xzf bolt-latest.tar.gz \
  && rm -f bolt-latest.tar.gz \
  && mkdir /opt \
  && mv bolt-v* /opt/bolt
WORKDIR /opt/bolt
RUN app/nut init \
  && sed -i -e 's#DocumentRoot "/var/www/localhost/htdocs"#DocumentRoot "/opt/bolt/public"#' /etc/apache2/httpd.conf \
  && sed -i -e 's#Directory "/var/www/localhost/htdocs"#Directory "/opt/bolt/public"#' /etc/apache2/httpd.conf \
  && sed -i -e 's#AllowOverride None#AllowOverride All#' /etc/apache2/httpd.conf \
  && sed -i -e 's/driver: sqlite/driver: mysql\n    username: root\n    password: bolt\n    host: db\n    port: 3306/' ./app/config/config.yml \
  && sed -i -e 's|#LoadModule rewrite_module modules/mod_rewrite.so|LoadModule rewrite_module modules/mod_rewrite.so|' /etc/apache2/httpd.conf \
  && chown -R apache:apache /opt/bolt \
  && mkdir -p /run/apache2
EXPOSE 80
VOLUME /opt/bolt
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

2. BoltとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d

docker-compose.yml
version: "2"
services:
  bolt:
    image: bolt
    container_name: "bolt"
    volumes:
      - "bolt-data:/opt/bolt"
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "bolt-db"
    volumes:
      - "db-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
        MYSQL_DATABASE: bolt
        MYSQL_ROOT_PASSWORD: bolt
volumes:
  db-data:
    driver: local
  bolt-data:
    driver: local

3. ブラウザからhttp://<Dockerホストの名またはIP>/にアクセス
管理者ユーザの情報を入力する


○Boltの管理者画面


○Boltの画面


○その他
・BoltとMySQLコンテナの停止・削除(docker-compose.ymlがあるフォルダで実行)
docker-compose down

・永続化ボリュームの一覧表示
docker volume ls


○関連情報
・Boltに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿