Django 프로젝트 용 Gitlab에서 CI / CD 설정

잭슨

gitlab에서 Django 프로젝트에 CI / CD를 추가하려고 시도한 것은 이번이 처음입니다. 성공하면 자동 테스트를 설정하고 개발 분기의 서버에 배포하고 싶습니다. 테스트는 거의 모든 것이 해결되고 종속성이 설치되고 시작 python manage.py test되지만 테스트 데이터베이스에 문제가 있습니다. 역 추적 오류는 약간 낮으며 여기서 테스트 중에 데이터베이스와의 상호 작용이 어떻게 발생하는지 이해하지 못합니다.

Creating test database for alias 'default'...
 .....
 MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on '127.0.0.1' (115)")
 The above exception was the direct cause of the following exception:
 Traceback (most recent call last):
   File "manage.py", line 21, in <module>
     main()
   File "manage.py", line 17, in main
...
     super(Connection, self).__init__(*args, **kwargs2)
 django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on '127.0.0.1' (115)")

django 설정 settings.py에서 데이터베이스에 대한 커넥터는 .env 파일의 이러한 변수를 통해 얻습니다.

.env

SECRET_KEY=ja-t8ihm#h68rtytii5vw67*o8=o)=tmojpov)9)^$h%9#16v&
DEBUG=True
DB_NAME=db_name
DB_USER=username
DB_PASSWORD=dbpass
DB_HOST=127.0.0.1

그리고 프로젝트 배포로 인해 모든 것이 아직 명확하지 않습니다. 설정하는 데 도움을 주시면 감사하겠습니다.

gitlab-ci.yml

stages:
  - test
  - deploy

test:
  stage: test
  script:
  - apt update -qy
  - apt install python3 python3-pip virtualenvwrapper -qy
  - virtualenv --python=python3 venv/
  - source venv/bin/activate
  - pip install -r requirements.txt
  - python manage.py test 

stage: deploy
  script:
  ...
  ???
  only:
  - develop

UPD 따라서 Ruddra 권장 사항은 다음 줄에 yml 파일에 추가했습니다.

services:
- mysql

variables:
  # Configure mysql service (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: test
  MYSQL_ROOT_PASSWORD: mysql

connect:
  image: mysql
  script:
  - echo "SELECT 'OK';" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"

결과적 으로 시작 질문과 동일한 추적으로 연결 성공 상태 및 테스트 오류 상태를 얻었습니다.

러 드라

실제로 MySQLGitLab에서 서비스로 실행할 수 있습니다 . 예를 들면 :

services:
  - mysql:latest

variables:
  # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: "db_name"
  MYSQL_ROOT_PASSWORD: "dbpass"
  MYSQL_USER: "username"
  MYSQL_PASSWORD: "dbpass"

업데이트 : 당신의에서 .env파일, 다음과 같은 설정을 업데이트 :

DB_HOST=mysql

업데이트 2 : (의이 문제를 기반으로 함) 다음 GitLab과 같이 코드를 업데이트 할 수 있습니다.

variables:
      MYSQL_DATABASE: "db_name"
      MYSQL_ROOT_PASSWORD: "dbpass"
      MYSQL_USER: "username"
      MYSQL_PASSWORD: "dbpass"

test:
  script:
    - apt update -qy
    - mysql --user=$MYSQL_USER --password=$MYSQL_PASSWORD --database=$MYSQL_DATABASE --host=$MYSQL_HOST --execute="SHOW DATABASES; ALTER USER '$MYSQL_USER'@'%' IDENTIFIED WITH mysql_native_password BY '$MYSQL_PASSWORD'"

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

간단한 Django 프로젝트로 gitlab CI 설정

분류에서Dev

Django 프로젝트를 위해 Travis CI에서 postgresql 설정

분류에서Dev

Django에서 사용하기 위해 Gitlab CI / CD에서 REDIS 구성

분류에서Dev

분기 된 GitLab 프로젝트에 CI / CD 없음

분류에서Dev

사용자 지정 DIND 서비스로 GitLab CI / CD Docker-In-Docker 실패

분류에서Dev

gitlab ci / cd에서 AWS EC2로

분류에서Dev

Android 프로젝트 용 Gitlab CI 구성

분류에서Dev

Azure TFS를 사용하여 CI / CD 파이프 라인에서 앱 설정을 구성하는 방법

분류에서Dev

gitlab-ci에서 Django 용 셀레늄 테스트 실행

분류에서Dev

APIM (Azure API Management)에 대한 CI / CD 파이프 라인 설정

분류에서Dev

Gitlab CI / CD 내에서 셀레늄 사용

분류에서Dev

GitLab CI / CD에서 특정 파일을 아티팩트로 전달할 때 왜 무시합니까?

분류에서Dev

docker-compose를 사용하여 여러 저장소에 대한 Gitlab CI / CD에서 Digital Ocean으로

분류에서Dev

자바 스크립트 프로젝트 용 jshint 및 travis-ci 설정

분류에서Dev

심포니 프로젝트로 Gitlab-ci를 설정할 수 없습니다.

분류에서Dev

Gitlab CI / CD에 로그 파일 통합

분류에서Dev

Apache 서버에서 Django 프로젝트 설정

분류에서Dev

ASP.NET Core Devextreme 프로젝트 용 VSTS CI (지속적 통합) 설정

분류에서Dev

CI-CD Azure DevOps에서 Angular + .net 핵심 프로젝트를 게시하는 동안 정의되지 않은 속성 '종류'를 읽을 수 없습니다.

분류에서Dev

어떻게 gitlab CI / CD와 MySQL 데이터베이스에 설정 연결에

분류에서Dev

gitlab-ci에서 동적으로 전역 변수 설정

분류에서Dev

Gitlab-Gitlab에 계정이없는 사용자에게 표시되도록 프로젝트 설정

분류에서Dev

VS 2012 웹 응용 프로그램에서 시작 프로젝트 설정

분류에서Dev

VS 2012 웹 응용 프로그램에서 시작 프로젝트 설정

분류에서Dev

Gitlab CI에서 Django 프로젝트에 대한 Selenium 테스트 실행 : get live_server_url에서 ERR_CONNECTION_REFUSED

분류에서Dev

Azure DevOps CI / CD 배포 웹 또는 함수 앱 YAML 파이프 라인에서 앱 설정의 값 변경

분류에서Dev

gitlab CI / CD 파이프 라인에서 라이선스 검사 자동화

분류에서Dev

AWS Glue 용 CI / CD 파이프 라인

분류에서Dev

gitlab CI / CD에서 하위 모듈을 업데이트하는 방법

Related 관련 기사

  1. 1

    간단한 Django 프로젝트로 gitlab CI 설정

  2. 2

    Django 프로젝트를 위해 Travis CI에서 postgresql 설정

  3. 3

    Django에서 사용하기 위해 Gitlab CI / CD에서 REDIS 구성

  4. 4

    분기 된 GitLab 프로젝트에 CI / CD 없음

  5. 5

    사용자 지정 DIND 서비스로 GitLab CI / CD Docker-In-Docker 실패

  6. 6

    gitlab ci / cd에서 AWS EC2로

  7. 7

    Android 프로젝트 용 Gitlab CI 구성

  8. 8

    Azure TFS를 사용하여 CI / CD 파이프 라인에서 앱 설정을 구성하는 방법

  9. 9

    gitlab-ci에서 Django 용 셀레늄 테스트 실행

  10. 10

    APIM (Azure API Management)에 대한 CI / CD 파이프 라인 설정

  11. 11

    Gitlab CI / CD 내에서 셀레늄 사용

  12. 12

    GitLab CI / CD에서 특정 파일을 아티팩트로 전달할 때 왜 무시합니까?

  13. 13

    docker-compose를 사용하여 여러 저장소에 대한 Gitlab CI / CD에서 Digital Ocean으로

  14. 14

    자바 스크립트 프로젝트 용 jshint 및 travis-ci 설정

  15. 15

    심포니 프로젝트로 Gitlab-ci를 설정할 수 없습니다.

  16. 16

    Gitlab CI / CD에 로그 파일 통합

  17. 17

    Apache 서버에서 Django 프로젝트 설정

  18. 18

    ASP.NET Core Devextreme 프로젝트 용 VSTS CI (지속적 통합) 설정

  19. 19

    CI-CD Azure DevOps에서 Angular + .net 핵심 프로젝트를 게시하는 동안 정의되지 않은 속성 '종류'를 읽을 수 없습니다.

  20. 20

    어떻게 gitlab CI / CD와 MySQL 데이터베이스에 설정 연결에

  21. 21

    gitlab-ci에서 동적으로 전역 변수 설정

  22. 22

    Gitlab-Gitlab에 계정이없는 사용자에게 표시되도록 프로젝트 설정

  23. 23

    VS 2012 웹 응용 프로그램에서 시작 프로젝트 설정

  24. 24

    VS 2012 웹 응용 프로그램에서 시작 프로젝트 설정

  25. 25

    Gitlab CI에서 Django 프로젝트에 대한 Selenium 테스트 실행 : get live_server_url에서 ERR_CONNECTION_REFUSED

  26. 26

    Azure DevOps CI / CD 배포 웹 또는 함수 앱 YAML 파이프 라인에서 앱 설정의 값 변경

  27. 27

    gitlab CI / CD 파이프 라인에서 라이선스 검사 자동화

  28. 28

    AWS Glue 용 CI / CD 파이프 라인

  29. 29

    gitlab CI / CD에서 하위 모듈을 업데이트하는 방법

뜨겁다태그

보관