Я пытаюсь развернуть проект Django на AWS Linux (RHEL / Centos). Я использую Gunicorn для запуска моего проекта Django через python3 virtualenv и использую Gitlab для выполнения ci / cd. Но это не удается, когда я использую команду Gunicorn. Вот ответ от gitlab-runner:
WARNING: You are using pip version 20.1.1; however, version 20.2 is available.
You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.
No changes detected
bash: gunicorn: command not found
ERROR: Job failed: exit code 1
Это код в .gitlab-ci.yml:
aws_deploy:
stage: deploy
before_script:
# Generate ssh key
- mkdir ~/.ssh
- echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- apt-get update
- apt-get install python3-pip -y
- pip3 install gunicorn
- gunicorn --version
script:
- echo "deploy"
- bash .gitlab-deploy-prod.sh
only:
- devop
А это .gitlab-deploy-prod. sh :
#!/bin/bash
# Get server list
set -f
string=$DEPLOY_SERVER
array=(${string//,/})
# Iterate servers for deploy and pull last commit
for i in "${!array[@]}"; do
echo "Deploy project on server ${array[i]}"
ssh ec2-user@${array[i]} "cd backend && git pull && sudo cp -r /home/ec2-user/backend /var/ && cd /var/ && ./build_project.sh && cd /var/venv/bin/ && source ./activate && cd /var/backend && gunicorn myproject.wsgi:application --bind 0:8000 --daemon && sudo service nginx reload"
done