인프런 커뮤니티 질문&답변

지루한 얼룩말님의 프로필 이미지
지루한 얼룩말

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

65강.. yml로 스택배포가 안됩니다ㅠㅠ

작성

·

1.7K

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
65강 수강중에 yml파일을 제대로 작성한것 같은데 다음과 같은 에러가 뜨면서
아예 스택배포가 안됩니다....ㅠㅠ
Deployment error environments Additional property environments is not allowed
스웜만 따로하려고 새로운 vultr 서버를 만들어서
django_test_image:4, nginx:latest, maridadb:10.5 이미지를 다시 받고
깃은 도커스웜전까지 진행했던 깃허브 레포와 동일하게 사용하였습니다.

정확이 어떤게 더 필요하다고하는지 에러가 안나와서 뭘고쳐야하는지 알수가 없습니다...ㅠㅠ
아래는 제가 작성한 yml파일입니다
django_test_image:4는 이름을 바꿔서 django_lklk_image:1으로 만들어놓았습니다!
version: "3.7"
services:
  nginx:
    image: nginx:1.19.5
    networks:
      - network
    volumes:
      - /home/django_course/nginx.conf:/etc/nginx/nginx.conf
      - static-volume:/data/static
      - media-volume:/data/media
    ports:
      - 80:80

  django_container_gunicorn:
    image: django_lklk_image:1
    networks:
      - network
    volumes:
      - static-volume:/home/LKLK/staticfiles
      - media-volume:/home/LKLK/media

  mariadb:
    image: mariadb:10.5
    networks:
      - network
    volumes:
      - maria-database:/var/lib/mysql
    environments:
      MYSQL_ROOT_PASSWORD: password1234
      MYSQL_DATABASE: django
      MYSQL_USER: django
      MYSQL_PASSWORD: password1234

networks:
  network:

volumes:
  static-volume:
  media-volume:
  maria-database:

답변 3

1

ㅠㅠㅠ

감사합니다...ㅠㅠㅠ 저는 강의시작부터 끝날때까지 오타와의 싸움이였네요...ㅠㅠ

보충강의가 남았지만 강사님이 안계셨더라면 완강은 올해말에다 꿈꿔볼수있었던것 같습니다....ㅠㅠ
남은 보충강의는 오타없이 잘따라가보겠습니다ㅠㅠㅠㅠ
감사합니다!!!!!

0

강사님...ㅠㅠ 안되네요...ㅠㅠ

MYSQL_ROOT_PASSWORD 만 MARIADB_ROOT_PASSWORD 로 바꿔봤는데 똑같이 작동이 안되서,

모든 MYSQL_* 형태로 작성된것들을 MARIADB_*로 바꿔보아도 동일하게 컨테이너들이 동작하지 않습니다...ㅠㅠ

envirionments variable로 따로 등록하고 진행할때

docker의 secrets에 등록해놓은 것들을 못불러오는게 아닐까 하는데... 해결방법은 모르겠네요....ㅠㅠㅠ

envirionment variables 등록은 다음과 같이 진행했습니다

MYSQL_DATABASE:django
MYSQL_USER:django
MYSQL_PASSWORD_FILE:/run/secrets/MYSQL_PASSWORD
MYSQL_ROOT_PASSWORD_FILE:/run/secrets/MYSQL_ROOT_PASSWORD

그리고 나중에는 MYSQL을 모두 MARIADB로 바꾸어서도 진행해 보았습니다...

역시안되는데.... 제 실력으로는 뚝딱 해결하기가 어렵네요.... 공식문서를 봐도 아직 해결법을 찾지는 못했습니다ㅠㅠ
계속한번 찾아보겠습니다ㅠ

혹시 저말고 이런문제 생기신분이 한명도 없나요...??ㅠㅠ

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

다시 확인해보니까,
환경 변수 설정을 해주시면서 작성한 YML 파일의 문법이 잘못 된것 같습니다.

    environments:
      MYSQL_ROOT_PASSWORD: password1234
      MYSQL_DATABASE: django
      MYSQL_USER: django
      MYSQL_PASSWORD: password1234

라고 작성하셨는데,

environments 가 아니라 environment 로 적어서 다시 실행해보시겠어요?
보니까 도커에서 해당 키워드를 인식하지 못하는 문제 같아 보이네요.

0

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

안녕하세요!
질문 확인했습니다.

Deployment error environments Additional property environments is not allowed


최근에 몇몇분들이 환경변수 입력을 할때, 
비슷한 증상을 보이시는 분들이 있더라구요.

아무래도 도커쪽에서 보안 업데이트 내용에 yml 파일 내부 환경변수 작성을 금지한 것으로 보입니다.

    environments:
      MYSQL_ROOT_PASSWORD: password1234
      MYSQL_DATABASE: django
      MYSQL_USER: django
      MYSQL_PASSWORD: password1234

위 부분 작성한 것을 삭제하시고,
직접 Portainer 에서 환경변수를 넣어서 실행시켜보시길 바랍니다.

그리고 최근 mariadb 의 도커 이미지가 업데이트 되어서,
만약 위의 내용으로 정상적으로 구동이 되지 않는다면,
위에 넣은 환경변수들 접두사로 붙어있는 MYSQL_ 을 MARIADB_로 변경해서 실행해보시길 바랍니다.


만약 그럼에도 제대로 작동이 안된다면 계속 질문 남겨주시길 바랍니다.

좋은하루 보내시구요!
감사합니다-

지루한 얼룩말님의 프로필 이미지
지루한 얼룩말

작성한 질문수

질문하기