Dockerfileについて

はじめに

現在、開発を行う時にPCに一から開発環境を準備するのではなく、dockerを使って開発環境を準備することが多くなっています。
docker-compose.ymlファイルに、ビルドするDockerfileや設定などを書いておいて、docker-compose up -d などのコマンドを叩くと開発環境が作られます。
ただdocker-compose.ymlは、主にどのDockerfileをビルドするかなどを指定するもので、ビルド時に実行される内容はDockerfileに書く必要があります。

Dockerfileとは

Docker は Dockerfile から命令を読み込み、自動的にイメージをビルドできます。 Dockerfile はテキストファイルであり、イメージを作り上げるために実行するコマンドライン命令を、すべてこのファイルに含められます。

https://docs.docker.jp/engine/reference/builder.html

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を詳しく勉強していきたいと思います。


いいなと思ったら応援しよう!