LoginSignup
0
0

More than 1 year has passed since last update.

Dockerで、検証用サーバーを構築してみた③ (docker-compose.ymlファイル作成編)

Last updated at Posted at 2021-12-02

[概要]

Dockerファイル作成編の後続記事となります。
② Dockerファイル作成編

当記事は、docker-compose.ymlファイルを作成する記事となり、
不要と思われる方は飛ばしてもらえればと思います。

[作業]

[現在のディレクトリ構成]

LocalServer/
├── app/
└── Dockerfile    

docker-composeのインストール確認

Dockerをインストールされている方は、dokcer-composeもインストールされている筈ですが、
確認方法としては以下のコマンドで、バージョンが表示されれば、とりあえずOKです。

terminal
$ docker-compose -v

docker-compose.ymlファイルとは

Dockerファイルから成る、複数のコンテナを定義し実行する Docker アプリケーションのためのツールです。

簡単に、申し上げるとdokcer-compose.ymlファイルを実行すれば、1個1個のコンテナを起動させる手間がなくなるイメージ。
※今回は、起動するコンテナは1つですが、学びのため使用

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

1, テキストファイルで、ファイル名「docker-compose.yml」を以下の内容で作成する。

docker-compose.yml
version: '3.3'

services:
    flask:
        build: .
        ports:
            - 8080:8080
        volumes:
            - ./app:/app
        environment:
            TZ: Asia/Tokyo
            FLASK_APP: local_server.py
            FLASK_ENV: development
        restart: 'no'
        command: flask run --host 0.0.0.0 --port 8080

<命令文>

services:お決まりの記述で、servicesの内容をネストして以下を記述しよう

 flask: 今回使用するサービス(pythonのフレームワーク)でネストして以下を記述しよう

  build:Dockerファイルのあるディレクトリを指す
     ※ピリオドなので、カレントディレクトリを指している -> docker-compose.ymlファイルと同じ階層

  ports:Dockerコンテナを立ち上げる際のポート番号

  volumes:マウントする設定ファイルのパスを指定
       ※マウント:使える状態にさせること   

  environment:環境変数設定(パスワードなど)
         TZ: Asia/Toyko
         ※タイムゾーンの指定
        
         FLASK_APP: local_server.py
         ※インスタンスの場所を指定(pythonファイルを指定)

         FLASK_ENV: development
         ※flaskをデバッグモードで起動(ソースコードを変更したとき再読み込みする機能)
       
  restart:自動起動設定
      ※noにしてあげることで、勝手に起動することを防ぐ。

  command:コマンド

2, 上記ファイルを作成したら、[LocalServer]フォルダ直下に保存しよう。

LocalServer / docker-compose.yml

[次のページ]

④ pythoneファイル作成編

[参考]

https://docs.docker.jp/compose/overview.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0