Help us understand the problem. What is going on with this article?

フロントエンドWebのDockerコンテナ構築(Amazon Linux × Apache × PHP 5.6)

More than 1 year has passed since last update.

概要

フロント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/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away