Developing

패스트캠퍼스 캐시백 챌린지 34일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 34일차

DEV_BLOG 2022. 5. 21. 23:23

 

 

수강 인증샷

 

Docker Compose를 활용하여 yml 파일을 생성해주고 build 해보는 클립을 수강하는식으로 챌린지를 진행하였다. 본래 컨테이너나 이미지 지울때 docker rm/rmi 같은 방식을 활용했었는데 docker image rm 이나 --force 같은 명령어도 사용하시는 것 보고 때에 따라 유용하게 쓸 수 있다는 것을 깨알았다. 중간미션까지 수행하면서 거의 챌린지가 반절정도 진행된 것 같은데 이후의 포스팅에도 최대한 많은 내용을 다룰 수 있으면 한다. 다음 포스팅은 AWS ECR에 컨테이너를 업로드 하는 내용의 포스팅을 다룰 예정이다.

 

 

Docker-Compose를 활용한 배포

장고 프로젝트 이전으로 이동한 뒤 docker-compose.yml 파일을 생성해준다.

version: '3'
services:

  nginx:
    container_name: nginx
    build: ./nginx
    image:docker-django/nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./fastcampus:/srv/docker-django
      - ./log:/var/log/nginx
    depends_on:
      - django

  django:
    container_name: django
    build: ./fastcampus
    image: docker-django/django
    restart: always
    command: uwsgi --ini wsgi.ini
    volumes:
      - ./fastcampus:/srv/docker-django
      - ./log:/var/log/uwsgi
  • version : docker-compose의 version 3를 사용하겠다

 

  • services: 만들고싶은 컨테이너 리스트들을 정의해준다.(nginx Container , django Container)

 

  • build : 현재폴더기준으로 특정 디렉토리에서 빌드시켜라

 

  • image : image 이름

 

  • restart: 항상 restart해라

 

  • volume: working directory 설정 및 로그파일 위치 설정

 

  • depends_on : 굉장히 중요한부분이다. django container가 없으면 nginx가 실행되지 않도록 해라. 그말인 즉슨 django container를 먼저 실행시켜라. (django가 먼저 올라가있어야 nginx도 구동할 수 있기때문에)

 

원래는 docker를 docker build …. 같은 식으로 쳐야 했지만 docker-compose yml 파일에 저장을 했기때문에 명령어를 칠 필요가 없다. docker-compose.yml 을 작성할 때 주의할점은 yml은 tab을 지원하지 않는다는점이다. 따라서 띄어쓰기로 구분해주록 한다!

 

기존에 만들어두었던 컨테이너와 이미지들을 제거하자. docker image들을 출력해준뒤에 없애주자.

docker images 혹은 docker image ls
docker rmi [IMAGE_ID] 혹은 docker image rm --force [IMAGE_ID]

 

docoker image로 생성해주었던 docker/django와 docker/nginx 를 삭제해준다.

만약 컨테이너가 실행중이라면 해당 이미지를 참조하고있는 컨테이너를 먼저 없애주어야한다.

docker stop [CONTAINER_ID]
docker rm [CONTAINER_ID]

 

 

이제 docker-compose를 활용해 build를 해보자!

docker-compose up -d --build

 

docker-compose 명령어를 통해 현재 올라간 컨테이너 현황도 확인할 수 있다.

docker-compose ps

 

 

 

 

 

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.