概要
フロントWebページのDockerコンテナをAmazon Linuxのベースイメージ に、ApacheとPHP 5.6をインストールし作成
背景
・AWSのEC2に実装するフロントページのローカル開発環境として作成
・PHPのパッケージ管理の為Composerをインストール
・フロントページから画像をアップロード、保存する為imagicをインストール
・PHPは、旧基盤で使っていたモジュールをそのまま流用する為一旦5.6
ディレクトリ構成
front_web_container
├ config
│ ├ ca
│ │ ├ server.crt
│ │ └ server.csr
│ ├ httpd.conf
│ ├ php.ini
│ └ virtual-host.conf
├ src
└ Dockerfile
Dockerfile
# Create Apache & PHP 5.6 Container.
FROM amazonlinux:2018.03.0.20190212
# PHP 5.6
RUN yum -y install \
php56-devel \
php56-gd.x86_64 \
php56-mbstring.x86_64 \
php56-mysqlnd \
php56-opcache \
php56-pdo \
php56-pecl-apcu \
php56-pecl-imagick.x86_64 \
uuid-php56 \
libxml2 \
libjpeg \
libpng \
vim
# Apache(httpd.2.4)
RUN yum -y install httpd24 mod24_ssl
# COPY PHP Modules.
COPY ./src /var/www/html/
# Set httpd
COPY ./config/httpd.conf /etc/httpd/conf/httpd.conf
COPY ./config/ca /etc/httpd/conf/ca
COPY ./config/virtual-host.conf /etc/httpd/conf/virtual-host.conf
# Set php.ini
COPY ./config/php.ini /etc/php-5.6.ini
# Install Composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_NO_INTERACTION 1
WORKDIR /usr/local/bin
RUN curl -sS https://getcomposer.org/installer | php
EXPOSE 443
EXPOSE 80
CMD /usr/sbin/httpd -D FOREGROUND
設定ファイル
php.ini:つどつど設定するのがめんどーなので、編集したファイルを用意しておく。
httpd.conf:つどつど設定するのがめんどーなので、編集したファイルを用意しておく。
virtual-host.conf:VirtualHostの設定
証明書:オレオレ証明書作成
コンテナ実行
# ビルド、イメージ作成
cd /path/to/front_web_container
docker build -t front_web_container .
# イメージ確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
front_web_container latest 36624ad88042 14 seconds ago 561MB
# コンテナ起動
docker run -d -p 8080:80 front_web_container
# コンテナ起動確認
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
594b3008f14d front_web_container "/bin/sh -c '/usr/sb…" 6 seconds ago Up 5 seconds 443/tcp, 0.0.0.0:8080->80/tcp unruffled_cray
※ブラウザで↓を打ち込み表示を確認
http://127.0.0.1:8080/