#docker #kubernetes #container #orchestrator #microservice #infrastructure-as-code #devops #ci #cd

제목[Q&A] Dockerfile에서 Github의 소스코드를 불러와서 쓰기2019-12-12 14:42
작성자

만약 내가 작성한 Dockerfile이 로컬에 얽매이지 않는 Dockerfile이고 싶을 경우, 혹은

내가 작성한 Dockerfile에서 외부의 소스코드를 끌어와 이미지를 만들고 싶은 경우

Github의 코드를 Dockerfile에서 불러오는 법을 알려드리겠습니다.

linux 환경에서 진행했습니다.


https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/
Node.js 공식 사이트의 Dockerize 방법을 알려주는 글입니다.


위 주소의 Dockerfile을 참조해서 로컬이 아닌 Github로 코드를 불러오게 수정했습니다.

from node:10 

workdir /usr/src/chat 

#업데이트 진행

run apt-get update 

#git 설치를 진행하고 -y (설치중에 나오는 선택지에 전부 y를 선택하는 옵션)옵션을 걸어줍니다.

run apt-get install git -y 

#git 설치후 내가 원하는 repo를 clone합니다.
run git clone https://github.com/EugeneYoo/forDocker.git 

#받은 repo안으로 이동해서 npm install 진행
run cd ./forDocker;npm install 

expose 8080

#cmd로 실행
cmd[ "node", "./forDocker/server.js" ] 

FROM node:10

# 앱 디렉터리 생성
WORKDIR /usr/src/app

# 앱 의존성 설치
# 가능한 경우(npm@5+) package.json과 package-lock.json을 모두 복사하기 위해
# 와일드카드를 사용
COPY package*.json ./

RUN npm install
# 프로덕션을 위한 코드를 빌드하는 경우
# RUN npm ci --only=production

# 앱 소스 추가
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]


위처럼 사이트에 나온 방법은 COPY 명령어를 사용하여 로컬에 있는 소스코드를 가져다 쓴다면


이번에 알려드린 git repo를 clone하는 방식으로 사용하시면 로컬에 얽매이지 않고 이미지를 빌드할 수 있습니다.


이미지 실행과 같은 추가적인 설명은 과제를 업로드한 도커허브인 https://hub.docker.com/r/dbdbwls16/simple_chat.js 에 작성해두었습니다.


#dockerfile#Dockerfile#git#github#dockerize#dockerizing#Github#Dockerize#Dockerizing
댓글