Gitlab CI bash: gunicorn: команда не найдена - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь развернуть проект 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
...