docker-composeでamazonlinuxとpostgresqlを構築する方法

dockerでamazonlinux構築 docker

今回はDocker for Windowsを使ってAmazon Linuxを起動してみたいと思います。
使用端末はWindows10 Homeです。
Amazon linux 2 docker image を ec2 で使われているものと似た感じにする。

Dockerファイルの作成

以下の内容をファイル名「Dockerfile」に記入し、ディレクトリ「D:\docker\build\amazonlinux」に格納する。

FROM amazonlinux:latest
MAINTAINER test_name
RUN amazon-linux-extras install -y php7.3
RUN yum install -y httpd
WORKDIR /var/www/html
ENTRYPOINT ["/usr/sbin/httpd”,”-DFOREGROUND”]

docker-composeのymlファイルの作成

以下の内容をファイル名「docker-compose.yml」に記入し、ディレクトリ「D:\docker」に格納する。

version: ‘3.3’
services:
  amazonlinux:
    volumes:
      – ./amazonlinux:/var/www/html
    build: ./build/amazonlinux/
    ports:
      – 8080:80
    tty: true
    depends_on:
      – postgresql
  postgresql:
    image: postgres:11.5
    ports:
      – 5433:5432
    volumes:
      – ./db:/var/data

ディレクトリの構成の確認

最後に以下のディレクトリ構成となります。

D:\docker
    amazonlinux         →空フォルダ
    build
      amazonlinux
        Dockerfile      →Dockerファイル
   db                   →空フォルダ
   docker-compose.yml   →composeの定義ファイル

docker-composeでビルド

サービスのビルドを実行します。

D:\docker>docker-compose build
build コマンドではimageを構築します。コンテナは作成しません。
キャッシュがあればそちらを優先的に使ってビルドするので、Dockerfileを更新したなどの理由でキャッシュを使いたくない場合は docker-compose build --no-cache とします。
D:\docker>docker-compose up -d

upコマンドでは、キャッシュがある場合はそれを使って一発でイメージの構築から、コンテナの構築・起動までします。imageがなくてもbuildから実行してくれます。( build コマンドと同じでDockerfileを更新してても反映されません。)

キャッシュがない場合は --build オプションをつけることで、イメージの構築から、コンテナの構築・起動までしてくれます。
新しいサービスを初めて立ち上げる場合はもちろんキャッシュはないので docker-compose up --build コマンドを使いましょう!

-dオプションを付けてバックグランドで実行することが多いです。

コメント

タイトルとURLをコピーしました