[英]Gitlab CI/CD deploy Django Docker container
我一直在嘗試為將作為容器部署的 django 項目設置 gitlab ci/cd 配置。
這是我嘗試過的:CI/CD -
image: creatiwww/docker-compose:latest
services:
- docker:dind
stages:
- lint
- build
- deploy
variables:
TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
lint:
stage: lint
image: python:3.8
before_script:
- pip install pipenv
- pipenv install --dev
script:
- pipenv run python -m flake8 --exclude=migrations,settings.py backend
allow_failure: false
build:
stage: build
script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY_IMAGE
- echo "IMAGE_APP_TAG=$TAG_LATEST" >> .env
- docker-compose build
- docker-compose push
only:
- master
deploy-to-prod:
stage: deploy
script:
- eval $(ssh-agent -s)
- echo "${ID_RSA}" | tr -d '\r' | ssh-add - > /dev/null
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY_IMAGE
- echo "IMAGE_APP_TAG=$TAG_LATEST" >> .env
- echo "SECRET_KEY=$SECRET_KEY" >> .env
- docker-compose -H "ssh://$SERVER_USER@$SERVER_IP" down --remove-orphans
- docker-compose -H "ssh://$SERVER_USER@$SERVER_IP" pull
- docker-compose -H "ssh://$SERVER_USER@$SERVER_IP" up -d
only:
- master
when: manual
管道成功,但在檢查容器日志時,我得到以下輸出-
python: can't open file 'manage.py': [Errno 2] No such file or directory
我在 docker ps 中的圖像字段也是空的。
請幫忙
將代碼放入 Docker_Compose.yml
版本:'3.7'
服務:后端:構建:./project_name 命令:sh -c "cd project && python3 manage.py migrate && python3 manage.py runserver 0.0.0.0:8000" 端口:- 8000:8000 depends_on:- db network_mode: host
db: image: postgres:12.0-alpine network_mode: 主機端口: - 5432:5432 卷: - postgres_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER='db_user' - POSTGRES_PASSWORD='db_password' - POSTGRES_DB='數據庫名稱'
卷:postgres_data:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.