CLIEN

톺아보기 공감글 추천글
로그인
로그인
톺아보기
공감글 추천글
  • 커뮤니티
  • C 모두의광장
  • F 모두의공원
  • I 사진게시판
  • Q 아무거나질문
  • D 정보와자료
  • N 새로운소식
  • T 유용한사이트
  • P 자료실
  • E 강좌/사용기
  • L 팁과강좌
  • U 사용기
  • · 체험단사용기
  • W 사고팔고
  • J 알뜰구매
  • S 회원중고장터
  • B 직접홍보
  • · 보험상담실
  • H 클리앙홈
  • 소모임
  • 소모임전체
  • 임시소모임
  • · 굴러간당
  • · 아이포니앙
  • · MaClien
  • · 주식한당
  • · 자전거당
  • · 방탄소년당
  • · 가상화폐당
  • · 나스당
  • · 안드로메당
  • · PC튜닝한당
  • · 골프당
  • · 일본산당
  • · 육아당
  • · 개발한당
  • · 레고당
  • · 키보드당
  • · 날아간당
  • · 냐옹이당
  • · 소셜게임한당
  • · 콘솔한당
  • · 바다건너당
  • · 축구당
  • · 포뮬러당
  • · 노젓는당
  • · 사과시계당
  • · 클다방
  • · 소시당
  • · VR당
  • · 땀흘린당
  • · 라즈베리파이당
  • · IoT당
  • · 갖고다닌당
  • · 디아블로당
  • · 스팀한당
  • · 덕질한당
  • · 리눅서당
  • · 이륜차당
  • · 야구당
  • · 걸그룹당
  • · 패스오브엑자일당
  • · LOLien
  • · 찰칵찍당
  • · 빨콩이당
  • · 동숲한당
  • · 방송한당
  • · 3D메이킹
  • · 시계찬당
  • · 어학당
  • · 캠핑간당
  • · 개판이당
  • · WOW당
  • · 소리당
  • · 총쏜당
  • · 그림그린당
  • · 젬워한당
  • · 요리한당
  • · 스타한당
  • · 블랙베리당
  • · 패셔니앙
  • · 퐁당퐁당
  • · 활자중독당
  • · 오른당
  • · 심는당
  • · 헌팅한당
  • · 물고기당
  • · 클래시앙
  • · 윈태블릿당
  • · 미끄러진당
  • · 나혼자산당
  • · 영화본당
  • · 창업한당
  • · 맛있겠당
  • · 여행을떠난당
  • · 뽀록이당(당구)
  • · Mabinogien
  • · 임시소모임
  • · KARA당
  • · e북본당
  • · 인스타한당
  • · 농구당
  • · 리듬탄당
  • · 쿠키런당
  • · 노키앙
  • · 트윗당
  • · SimSim하당
  • · 미드당
  • · 보드게임당
  • · 배드민턴당
  • · 소풍간당
  • · 윈폰이당
  • · 터치패드당
  • · WebOs당
  • · FM한당
  • · 하스스톤한당
  • · X세대당
  • · 도시어부당
  • · 볼링친당
  • · 날아올랑
  • · 블록체인당
  • · 대구당
  • · 가죽당
  • · 곰돌이당
  • · 문명하셨당
  • · 이브한당
  • · 차턴당
  • · 히어로즈한당
  • · 땅판당
  • · MTG한당
  • · 적는당
  • · 품앱이당
  • · Sea마당
  • · 심야식당
  • · 파도탄당
  • · 공대시계당
© CLIEN.NET
공지 현재 첨부 이미지가 정상적으로 보이지 않고 있습니다 더보기
개발한당
질문
도커파일 해석 도와주실분 계신가요? ㅠㅠ 4
호빵야
호빵야  메모
123.♡.122.98
2020-11-24 23:56:38 784

안녕하세요

깃헙 오픈소스로 이것저것 공부하던중에 소스에 도커파일이 섞여있어서 무슨 역할을 하는지 궁금하여 질문남기게 되었습니다


일단 이 오픈소스는 갯츠비 스타터(리액트를 이용한 정적웹사이트 제작 오픈소스) 소스이구요

도커이그놀파일을 포함해서 총 5개의 도커파일이 있습니다


갯츠비 스타터라서 도커가 필요한가? 싶어서 찾아봐도 무슨역할을 하는지는 잘 모르겠습니다


일단 소스를 캡쳐했습니다


컴포즈 파일인데요 도커 파일중 가장 궁금한부분입니다


4행에 image가 있는데요

(깃허브레파지토리?)라고 쓰여진부분에 원래 이 오픈소스의 깃허브 또는 도커허브의 레파지토리로 생각되는 루트 주소가써있었습니다

예를들면 clien/gatsby-stater-clien처럼요


그래서 혹시 이주소 설정으로 도커허브에서 해당 도커허브 이미지를 내려받는 기능인가 싶어서 도커허브에가서 직접 찾아보니

도커허브에 등록되어있지않더라구요(예를들면 clien으로 검색하거나 전체를 다 검색하거나 어떻게 검색해봐도 안나오더라구요)


그래서 생각한건 만들어진 이미지를 다운로드하는게아니고 

로컬에 저 이름으로 도커허브에 이미지를 만드는 기능을 하는건가? 싶은데요


혹시 제가 생각한게 맞는지요?


 이소스는 프로덕션 컴포즈 소스인것 같은데 역시 여기도 이미지에 관련해서 같은 설정이있습니다(첫번째 소스는 디벨롭)


요건 프로덕션 도커파일인데요 보면 아마 자동으로 커맨드를 나열해서 지정루트 청소하고 이미지로 씌우는 느낌인데요

정확히는 모르겠습니다

(이게 갯츠비 스타터에 왜 필요한건지..ㅠㅠ)

디벨롭 도커파일도 있는데요 프로덕션에 비해선 상당히 간단하네요..(물론 의미는 모르겠습니다)



질문이 엄청 장황한데요 죄송합니다 ㅠㅠ


일단 가장궁금한건 1번째 2번째의 image:뒤에 붙은 레포지토리 주소가 무슨 역할을 하는주소인지궁금합니다

(도커이미지 생성 레포지토리인지 클론 주소인지 아니면 도커랑 상관없이 깃 레포지토리를 써놓은건지....) 


두번째로 궁금한건 이 도커파일세트가 프로덕션하고 디벨롭으로 나눠져있는데 나눈이유와 각각 무슨역할을 하는지가 궁금합니다


미천한 독학코딩러에게 자비를 부탁드립니다 ㅠㅠ

  • 주소복사
  • Facebook
  • Twitter
댓글 • 4
bluewiz
bluewiz  메모
IP 125.♡.86.36
11-25 2020-11-25 01:46:16
image: 뒤에 붙은 항목에는 컨테이너 이미지 이름을 지정하는데,
"계정/이미지:버전" 형태인 경우와 "URL/이미지:버전"로 구성되는 경우가 있습니다.
"계정/이미지:버전" 인 경우에는 로컬 도커 이미지를 먼저 검색하고 없으면, 도커 허브를 통해 이미지를 가져옵니다.
"URL/이미지:버전" 로 구성된 경우에는 대상 "URL" 에 도커 레지스트리 서버가 동작하고 있다고 가정해 대상 서버에서 이미지를 가져옵니다.

원하는 도커 컨테이너를 생성하기 위해서 아래 명령을 사용합니다.

docker-compose -f docker-compose.production.yml build

컨테이너는 `docker-compose.production.yml` 파일 안에 `image` 항목으로 지정한 이름으로 생성됩니다.

version: '2'
services:
web:
image: bluewiz/gatsby-starter-lumen:production
build:
context: ./
dockerfile: Dockerfile.production
tty: true
volumes:
- ./:/usr/src/app
ports:
- "80:80"

생성한 컨테이너 이미지는 `docker images` 명령으로 확인할 수 있습니다.

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
bluewiz/gatsby-starter-lumen production 4959d0fa4f80 9 minutes ago 67MB
...

컨테이너를 실행하려면 `docker-compose up` 명령을 사용합니다.

$ docker-compose -f docker-compose.production.yml up
Starting gatsby-starter-lumen_web_1 ... done
Attaching to gatsby-starter-lumen_web_1
web_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
web_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
web_1 | 10-listen-on-ipv6-by-default.sh: error: IPv6 listen already enabled
web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
web_1 | /docker-entrypoint.sh: Configuration complete; ready for start up

포트 설정을 변경한 게 없다면, http://localhost:80 를 통해 접속할 수 있습니다.

gatsby-starter-lumen:development 컨테이너는 개발을 위해
내부에 들어가서 작업할 수 있게 만들어둔 것이라고 생각됩니다.
gatsby-starter-lumen:production 컨테이너는
실제로 정적 콘텐츠 관리를 할 수 있도록 서버를 띄울 목적으로 만들어져 있습니다.
·
호빵야
호빵야  메모
IP 126.♡.3.88
11-25 2020-11-25 08:02:08
@bluewiz님
친절하게 답변해주셔서 정말 감사드립니다 ㅠㅠ
정말 많은 공부가 되었습니다
·
비모
비모  메모
IP 219.♡.203.117
11-25 2020-11-25 04:03:13 / 수정일: 2020-11-25 04:04:33
1. 개발 과정에서 도커를 사용하는 이유는 다양할 수 있겠지만, 개인적으로는 배포의 편리함 때문에 사용합니다.
도커를 사용하면 개발 환경이 실 사용중인 OS와 분리되므로, 의존성 관리도 편리해지고, 배포 또한 손 쉽게 자동화 가능하지요. (CI / CD)

2. 위에 올려주신 파일은 docker-compose 파일로, 여러 개의 도커 인스턴스(컨테이너)를 한번에 띄우고 관리할 수 있게 해주는 툴이라 생각하시면 됩니다.

3. "image"는 말씀하신 것 처럼 해당 이름의 이미지를 도커 허브에서 받는 역할을 합니다. 이 내용은 @bluewiz님 님이 자세하게 설명 해주셨네요. (Local 먼저 확인 후, Docker Hub 확인)

4. 하지만 올려주신 docker-compose 파일 같은 경우, 보시면은 "image" 아래에 "build"가 있는 것을 보실 수 있는데요, 이럴 때에는 docker-compose가 "build" 아래의 "dockerfile"에 명시 된 도커 파일을 읽어 빌드한 후, 컨테이너도 만들고 "image"에 설정한 이름으로 도커 이미지 또한 제작하게 됩니다.

5. Production과 Development로 환경을 분리하는 이유 또한 다양할 수 있으나, 저 같은 경우에는 보안과 디버깅의 용이성 때문에 분리하는 것이 크고요, (예: Development의 경우 실행 중 오류 발생시 자세한 내용이 나오지만, Production의 경우 나오지 않음) 또한, CI / CD시 새로운 기능을 추가한 후 Git (소스 코드 관리 툴) 저장소에 소스코드를 업로드하면 자동으로 빌드 및 테스트를 진행하고, Development 서버에 배포되도록 하는 것이 가능합니다. (운영환경 분리 및 빌드/배포 파이프라이닝)
이후 적절한 테스트를 거쳐서 해당 기능 추가 또는 변경사항이 문제가 없을 경우 Production으로 자동 배포가 되도록 할 수 있고요.

6. 광고는 아닙니다만, 도커에 대해 더 자세하게 알고 싶으시면 이재홍 님이 쓰신 "가장 빨리 만나는 Docker" 책 추천해드립니다. 온라인에서 무료로 보실 수 있고요, 설명이 자세하고 쉬워서 입문으로 보기 좋습니다ㅎ
링크: http://pyrasis.com/docker.html

7. 5번에 조금 부연 설명을 붙여드리자면, 위 소스코드에서 Development 도커 파일의 경우 로컬 폴더를 도커 컨테이너 내에 링크함과 동시에 node 테스트 서버(:8000)가 직접 서빙하도록 도커 파일이 설정되어 있고요, Production 도커 파일의 경우 소스코드를 yarn으로 빌드한 후 Nginx 웹 서버를 통해 80 포트로 서빙되도록 되어 있습니다.
따라서 Development 환경일 경우 소스코드에 변경이 바로 적용이 되고, 실행 중 발생하는 오류가 아마 다 나올 듯 하고, Production의 경우 오류가 발생해도 뜨지 않거나, 아님 아얘 도커 이미지 빌드가 안될 것 같네요.
·
호빵야
호빵야  메모
IP 126.♡.3.88
11-25 2020-11-25 08:03:07 / 수정일: 2020-11-25 08:04:29
@님
이해하기 쉽게 설명해 주셔서 정말 감사드립니다 ㅠㅠ
뭐라고 감사의 말씀을 드려야 될지 모르겠네요 ㅠㅠ
·
새로운 댓글이 없습니다.
댓글은 로그인이 필요한 서비스 입니다.
이미지 최대 업로드 용량 10 MB
업로드 가능 확장자 jpg,gif,png,jpeg
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
이전글 다음글
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
설정
PC버전
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET