まず、ベース画像
【xxx.com.cn/3rd_part/python.3.6.8:alpine3.9-mysqlclient1.4.2】
FROMのpython:3.6.8-alpine3.7 MAINTAINER 拓也・ノグチ<[email protected]> RUNのAPK \ --update --no-キャッシュmariadb-クライアントLIBSを追加 && APK --no-キャッシュを追加--virtual .build -deps \ mariadb-devの\ GCC \ MUSL-devの\ &&ピップインストールはmysqlclient == 1.4.2 \ && APKデル.build-DEPS
第二に、ミドルウェア・ミラー
【xxx.com.cn/xxx-4k:base-0.4】
FROM xxx.com.cn/3rd_part/python.3.6.8:alpine3.9-mysqlclient1.4.2 メンテナXXX-4K COPYは/tmp/requests.txt requests.txt COPYのkubectl /ドッキングウィンドウ/ホーム/ドッキングウィンドウ/ binに/ kubectl14 COPYの cx_Oracleを-7.2.2-cp36-cp36m-linux_x86_64.whl /tmp/cx_Oracle-7.2.2 -cp36-cp36m-linux_x86_64.whl COPY枕-5.4.1-cp36-cp36m-linux_x86_64.whl /tmp/Pillow-5.4.1 -cp36-cp36m-linux_x86_64.whlの COPYの pycryptodome-3.9.0-cp36-cp36m-linux_x86_64.whl /tmp/pycryptodome-3.9.0 -cp36-cp36m-linux_x86_64.whl RUN インストールPIP -r /tmp/requests.txt \ &&ピップインストールを/ tmp / cx_Oracle- 7.2.2 -cp36-cp36m-linux_x86_64.whl \ &&ピップインストールを/ tmp /枕5.4.1 -cp36-cp36m-linux_x86_64.whl \ &&ピップインストールを/ tmp / pycryptodome- 3.9.0 -cp36-cp36m-linux_x86_64.whl \ &&のchmod 755 /ドッキングウィンドウ/ホーム/ドッキングウィンドウ/ binに/ kubectl14 \ && LN -s /ドッキングウィンドウ/ホーム/ドッキングウィンドウ/ binに/ kubectl14は/ usr / local / binに/ kubectl \ &&のrm -rf〜/ .cache / * \ &&のrm -rf / tmpに/ * \ &&エコー'終了!!!'
requirementes.txt
AMQP == 2.2.2 バベル== 2.1.1 ビリヤード== 3.5.0.3 セロリ== 4.1.0 認証取得== 2017年11月5日 chardetの== 3.0.4 Djangoの== 2.0 ジャンゴ-CORS-ヘッダ== 2.4.0 ジャンゴ- Redisの== 4.8.0 ジャンゴ- TinyMCEの== 2.7.0 ジャンゴ・ウィジェットひねり== 1.4.3 djangorestframeworkの== 3.7.3 花== 0.9.2 gunicorn == 19.6.0 IDNA == 2.6 IPY = = 0.83 カフカ、パイソン== 1.4.3 昆布の== 4.1.0 マルチキー辞書の== 2.0.3 PBRの== 3.1.1 PyMySQLの== 0.8.0 パイソン・ジェンキンス== 1.4.0 pytz == 2017.3 PyYAMLと== 3.13 Redisの== 2.10.6 要求== 2.18.4 setuptoolsの-gitの== 1.2 6 == 1.11.0 sqlparse == 0.3.0 == 5.1竜巻 urllib3 == 1.22 つる== 1.1.4 xlrd == 1.1.0 xlwt == 1.3.0
第三に、ビジネスミラー
【xxx.com.cn/itil/itil-4k-gunicorn:K8S-20191018184523MP】
FROM xxx.com.cn/xxx-4k:base-0.4 COPY /4k/temp/4k.zip 4k.zip COPY bootstart.sh /xxx/bootstart.sh CMD SH /xxx/bootstart.sh
[bootstart.sh]
#!/ binに/ bashの zip_dir = " / XXX / TEMP " zip_file = ` lsの $ zip_dir / * .zip` ます。mkdir $ zip_dir / deploy_temp 解凍$ zip_file -d $ zip_dir / deploy_temp ます。mkdir -p /アプリケーション/ XXX CP -ar $ zip_dir / deploy_temp / XXX / /アプリケーション/ XXX / CD /アプリケーション/ XXX / shのstart_gunicorn_k8s.sh
[start_gunicorn_k8s.sh]
gunicorn -c gunicorn_k8s.ini 4K.wsgi
[Gunicorn_k8s.ini]
バインド= "0.0.0.0:9123" 労働者 = 4 エラーログ = './gunicorn.error.log' ACCESSLOG = './gunicorn.access.log' タイムアウト = 3000 ログレベル = 'デバッグ' proc_nameに = 'gunicorn_proc' access_log_format = ' %(T)S%(P)S%(H)S "%(R)S" %(S)S%(L)S%(B)S%(F)S」 "%(a)のS" 「 worker_connections = 1000 max_requests = 2000 graceful_timeout = 300 ログレベル= 'デバッグ' デーモン= ''偽
[WSGI]
「」」 4KプロジェクトのWSGIの設定。 これは、 `` application``という名前のモジュールレベルの変数として呼び出し可能なWSGIを公開しています。 このファイルの詳細については、を参照してください https://docs.djangoproject.com/en/2.0/howtoを/展開/ WSGI / 「 "" インポートOS から django.core.wsgi インポートget_wsgi_applicationの (os.environ.setdefault " DJANGO_SETTINGS_MODULE "、" 4K.settings.prd " ) アプリケーション = get_wsgi_application()
四、YAMLファイル
---
apiVersion:v1の
種類:サービス
メタデータ:
ラベル:
名前:4K-gunicorn
名:4K-gunicornの
名前空間:デフォルト
仕様:
ポート:
-ポート:9090
targetPort:9123
セレクター:
名前:4K-gunicorn
---
apiVersion:アプリケーション/ v1の
種類:展開
メタデータ:
名前:4K-gunicorn
名前空間:デフォルト
仕様:
レプリカ:1つの
セレクタ:
matchLabels:
名前:4K-gunicorn
テンプレート:
メタデータ:
ラベル:
名前:4K-gunicornの
スペック:
imagePullSecrets:
-名前:4kharbor
コンテナ:
-名前:4K-gunicorn
画像:xxx.com.cn/itil/itil-4k-gunicorn:K8S-20191018453216MP
imagePullPolicy:IfNotPresentの
ポート:
- containerPort:9123