Dockerfileについて
はじめに
現在、開発を行う時にPCに一から開発環境を準備するのではなく、dockerを使って開発環境を準備することが多くなっています。
docker-compose.ymlファイルに、ビルドするDockerfileや設定などを書いておいて、docker-compose up -d などのコマンドを叩くと開発環境が作られます。
ただdocker-compose.ymlは、主にどのDockerfileをビルドするかなどを指定するもので、ビルド時に実行される内容はDockerfileに書く必要があります。
Dockerfileとは
docker buildコマンドを実行すると、Dockerfileの情報をもとにしてイメージを作成します。このイメージをもとにコンテナを立ち上げます。
なので、dockerで環境構築を行うときは必要なコンテナのDockerfileを書く必要があります。(ex Laravelが動くためのサーバコンテナ、MysqlのDBサーバコンテナなど)
Dockerfileのコマンド
Dockerfileを書くときには、いくつかのコマンドを使用しながらbuild時に実行する命令や環境変数などを設定していきます。以下、コマンドの例になります。
# ベースイメージ(外部からpullしてくる)
FROM centos:7
# ラベル(バージョン、メールアドレス)
LABEL version: '1.0'\
com.example.mail: 'example@exam@le.com'
# コマンド実行(ビルド時)
RUN yum install -y httpd
# コマンド実行(run実行時)
CMD ["/bin/bash"]
# 環境変数
ENV DB_HOST= \
DB_PORT= \
DB_USER= \
DB_PASSWD= \
DB_DATABASE=
# ファイルコピー
COPY ./config/a.cnf /etc/config
おわりに
dockerについてはとりあえず使える程度で、あまり詳しく勉強していませんでした。開発で少し詰まったので、今後もdockerを詳しく勉強していきたいと思います。