5
4

More than 5 years have passed since last update.

Apache + Flask 環境の Dcokerfile を作成する

Posted at

この文章の前提

  • Apache、Flask、Dockerが何かということの説明は割愛する
  • Dockerはホストマシンにインストール済みのものとして記載する

目的

Apache+Flask環境を他のマシンでも再現できるようにする

用語

  • mod_wsgi
    Apacheでpythonプログラムを動かすためのモジュール

環境

対象 バージョン
OS macOS Mojave (10.14.3)
Docker 18.09.0

資材

Githubに置いています

起動方法

  • ビルド
$ docker-compose build 
  • 起動
  $ docker-compose up -d
  • 確認
  $ curl http://localhost:8080/
  Hello, Flask!

構成 - コンテナ構築関連(ホスト側)

.
├── Dockerfile
├── README.md
├── docker-compose.yml
└── src
    ├── adapter.wsgi
    ├── flask.conf
    └── run.py

構成 - アプリケーション関連(コンテナ側)

  • mod_wsgiの設定ファイル
/
└── etc/
   └── httpd/
      └── conf.d/
         └── flask.conf★
  • アプリケーションディレクトリ
/
└── var/
   └── www/
      └── projects/
         └── test/
            ├── adapter.wsgi★
            └── application/
               └── run.py★

構築概要(Dockerfile概要)

  1. imageのダウンロード
    CentOS7をダウンロード

  2. 変数の設定
    アプリケーションディレクトリ等の名前を設定

  3. 必要なパッケージのインストール

    • 依存ライブラリ等
    • Apache関連
    • python3関連(リポジトリ登録の上、yumでインストール)
    • pythonモジュール
      • mod_wsgi(上記python3を起動するためyumではなくpipでインストール)
      • Flask
  4. 資材の配備
    [構成 - アプリケーション関連(コンテナ側) ] 通りにディレクトリを作成、資材をコピー

  5. サービスの起動
    httpdサービスの自動起動をON
    起動時のコマンドを設定

  6. Listen Portを設定
    コンテナ内のListen Portを設定

参考URL

PythonのFlaskを初めて触ってから30分で本番環境にデプロイ+ HTTPS通信まで完成
CentOS7にPython3をインストール

5
4
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
5
4