始める前に
Python
基づいてプロジェクトの開発フレームワークは、プロジェクトがコンテナ化することができ、その後を通じて期待しているようなレイアウトコンテナ/アプリケーションなどのツール、この記事の目的は、カスタムDjangoの基本イメージです。Python:3.6
Django:1.11
docker-compose
そして、「なぜあなたはカスタムベースの画像が必要なのでしょうか?「同じ記事では、基本的なミラーリングの役割は、プロジェクトのイメージへのサポートを提供することです。構築されているPython
拡張モジュールなど、必要な項目を追加、公式の画像の上にDjango
、pymysql
、Gunicorn
プロジェクトの実際のニーズに特化が優先するもの、および他の一般的なモジュールを。
最後に、効率的に使用して、静的ファイルの要求に対処することができるようにするNginx
リバースプロキシDjango
アプリケーションを、これは次の記事、「Djangoのコンテナ(下):使用Gunicorn管理ジャンゴ」についての話である、ことを楽しみにしてください公共毎週木曜日のドッキングウィンドウ号テーマの更新記事。。
環境説明
容器镜像: python:3.6
容器系统: debian 9 (stretch)
Docker版本: CE - 17.06.0
Docker主机: Ubuntu Server 16.04
ステップ
- ベースイメージのビルドディレクトリ
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
- ベースイメージファイル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
この文書で定義されました。
- ミラーの構築
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
- ミラーことを確認し
、それが最新のデフォルトですので、ベースイメージの準備が完了した後、あなたがプロジェクトにミラーを使用することができ、ミラーとしてマークされたタグを追加する根拠はありません。
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]