はじめに
本記事は、プログラミング初学者、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
Dockerfileの記述方法
# FROMでベースとなるイメージを決める
# 決め方
# 極力シンプルなものを選ぶ
# webサーバーと一緒になったものを選ぶ(検証サーバーとwebサーバーは役割が似ているため)
FROM php:7.3.29-apache
# パッケージのアップデートや拡張機能のインストールをRUNで行う
# Dockerfileに書くかDocker-compose.ymlに書くかの判断
# Dockerfileに書いたものはイメージにする際に1度だけ実行される。イメージ作成後は変更されない。
# → 全員が一致させておいた方が良いもの(インストール等)はDockerfileに記述した方が良い。
# imageからcontainerになるタイミングで指定したいものについてはdocker-compose.ymlに記述した方が良い。
# → 各ユーザーがdocker-compose.ymlを変更すれは変更ができるため。
RUN apt-get update \
&& apt-get install -y zlib1g-dev \
&& apt-get install -y zip unzip \
&& apt-get -y install libzip-dev \
&& docker-php-ext-install pdo_mysql mysqli mbstring zip\
&& docker-php-ext-enable mysqli \
&& a2enmod rewrite
# composerのインストール
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/composer \
&& chmod +x /usr/local/bin/composer
# WORKDIRでイメージ内のどこでコマンドを実行するのかを指定する
WORKDIR /var/www/html
# 変更が生じることのない環境変数(タイムゾーン、コンポーザー周辺等)を設定する
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
# タイムゾーン設定
ENV TZ=Asia/Tokyo