Djangoのコンテナ(I):基本画像カスタム

始める前に

Python基づいてプロジェクトの開発フレームワークは、プロジェクトがコンテナ化することができ、その後を通じて期待しているようなレイアウトコンテナ/アプリケーションなどのツール、この記事の目的は、カスタムDjangoの基本イメージですPython:3.6Django:1.11docker-compose

そして、「なぜあなたはカスタムベースの画像が必要なのでしょうか?「同じ記事では、基本的なミラーリングの役割は、プロジェクトのイメージへのサポートを提供することです構築されているPython拡張モジュールなど、必要な項目を追加、公式の画像の上にDjangopymysqlGunicornプロジェクトの実際のニーズに特化が優先するもの、および他の一般的なモジュールを。

最後に、効率的に使用して、静的ファイルの要求に対処することができるようにするNginxリバースプロキシDjangoアプリケーションを、これは次の記事、「Djangoのコンテナ(下):使用Gunicorn管理ジャンゴ」についての話である、ことを楽しみにしてください公共毎週木曜日のドッキングウィンドウ号テーマの更新記事。

環境説明

容器镜像: python:3.6
容器系统: debian 9 (stretch)
Docker版本: CE - 17.06.0
Docker主机: Ubuntu Server 16.04

ステップ

  1. ベースイメージのビルドディレクトリ
tree base/

base/
├── conf
│   ├── 404.html
│   ├── default.conf
│   ├── nginx.conf
│   ├── requirements.txt
│   ├── sources.list
│   ├── ssl
│   │   ├── domain.crt
│   │   └── domain.key
│   └── supervisord.conf
└── `Dockerfile`

2 directories, 9 files
  1. ベースイメージファイルDockerfile
cat base/Dockerfile

# start-base
FROM python:3.6
MAINTAINER dongnan #<@微信公众号:运维录>

# apt
COPY conf/sources.list /etc/apt/sources.list
RUN apt-get update \
    && apt-get install -y supervisor nginx \
    && apt-get clean \
    && rm -r /var/lib/apt/lists/*

# env
ENV TZ=Asia/Shanghai \
    LANG=en_US.UTF-8

# django 
COPY conf/requirements.txt /root/
RUN pip --no-cache-dir install -r /root/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

これは、Dockerfileプロジェクトがベースイメージ、その上にのみいくつかの基本的な作業であるため、非常に短いです。
これは、最初のインストールsupervisor nginxパッケージ、および、コンテナの環境変数を設定します。
最後に、使用してpip、インストールプロジェクトの依存関係をdjango 、pymysqlしているrequirements.txtこの文書で定義されました。

  1. ミラーの構築
docker build -t start-base .

Sending build context to Docker daemon    767kB
Step 1/8 : FROM python:3.6
# ...省略
Successfully built fc3f6f242301
Successfully tagged start-base
  1. ミラーことを確認し
    、それが最新のデフォルトですので、ベースイメージの準備が完了した後、あなたがプロジェクトにミラーを使用することができ、ミラーとしてマークされたタグを追加する根拠はありません。
docker images --format "{{.Repository}} {{.Tag}}" 

start-base latest

概要

最後に、記事の下で知識を総括します

  • ベース画像の役割はしている项目镜像サポートを提供し、ミラーに基づいてプロジェクトにコードを追加し、プロジェクト作業の完全な構築にミラー。
  • 使用するsupervisorコンテナ管理にnginx、gunicorn (python WSGI Server)プロセス。
  • pipそれはpython提供してパッケージ管理ツールpythonのルックアップパッケージ、ダウンロード、インストール、アンインストール機能を。
  • pip -iオプションは、倉庫のアドレスを指定し、デフォルトは非常に遅いhttps://pypi.org/simple,** **国内の倉庫の使用をお勧めします

参考記事
doker&K8S Qun [703906133]

おすすめ

転載: blog.51cto.com/14521173/2463894