[내프로젝트] 4. Docker image를 만들고 Jenkins를 통해 github 자동 배포가 이루어지도록 하자.

llunaB·2022년 3월 9일
0

jenkins 설정 & github 연동하기

아래 블로그에 정확하게 나와있다! :)
https://kitty-geno.tistory.com/88

github 자동빌드 연동하기(웹훅)

아래 블로그를 보자.
https://velog.io/@yb_engineer/Server-EC2-Docker-Deploy-with-Jenkins-rckdi742

Dockerfile 만들기

  • 서버
FROM openjdk:8-jdk

CMD ["./gradlew", "clean", "build"]
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar

ENV TZ=Asia/Seoul
RUN apt-get install -y tzdata

EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
  • 클라이언트

참고 https://github.com/kkangil/docker-react-app

FROM node:lts-alpine as build 

WORKDIR /app
COPY package*.json ./

RUN npm install --production
COPY . .

RUN npm run build

# ngingx 베이스 이미지 설치 및 연결
FROM nginx:stable-alpine as production-stage
COPY --from=build /app/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
  • nginx
# nginx 이미지를 사용합니다. 뒤에 tag가 없으면 latest 를 사용합니다.
FROM nginx

# root 에 app 폴더를 생성
RUN mkdir /app

# work dir 고정
WORKDIR /app

# work dir 에 build 폴더 생성 /app/build
RUN mkdir ./build

# host pc의 현재경로의 build 폴더를 workdir 의 build 폴더로 복사
ADD ./build ./build

# nginx 의 default.conf 를 삭제
RUN rm /etc/nginx/conf.d/default.conf

# host pc 의 nginx.conf 를 아래 경로에 복사
COPY ./nginx.conf /etc/nginx/conf.d

# 80 포트 오픈
EXPOSE 80

# container 실행 시 자동으로 실행할 command. nginx 시작함
CMD ["nginx", "-g", "daemon off;"]
  • redis(예시)
FROM redis:6.2.6-alpine

COPY ./entrypoint.sh /usr/local/bin

RUN chmod +x /usr/local/bin/entrypoint.sh

CMD /usr/local/bin/entrypoint.sh

docker-compose.yml

version: "3"
services:

jenkins pipline 만들기

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글