✔ 아래 코드 내용을 넣은 Dockerfile 만들기
FROM gradle:7.4-jdk11-alpine as builder
WORKDIR /build
# 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함.
COPY build.gradle settings.gradle /build/
RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true
# 빌더 이미지에서 애플리케이션 빌드
COPY . /build
RUN gradle build -x test --parallel
# APP
FROM openjdk:11.0-slim
WORKDIR /app
# 빌더 이미지에서 jar 파일만 복사
COPY --from=builder /build/build/libs/*-SNAPSHOT.jar ./app.jar
EXPOSE 8080
# root 대신 nobody 권한으로 실행
USER nobody
ENTRYPOINT [ \
"java", \
"-jar", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dsun.net.inetaddr.ttl=0", \
"app.jar" \
]
✔ 모든 파일 내용, Dockerfile, readme.md 파일까지 commit하기
도커 접속
sudo su -
관리자 권한 설정
git clone <git repository address>
git clone하기
docker build -t <docker image> .
docker에 build
docker run -p 8080:8080 -e SPRING_DATASOURCE_URL=jdbc:mysql://<EC2주소>:3306/<스키마명> -e SPRING_DATASOURCE_PASSWORD=<데이터베이스 비밀번호> <도커이미지명>
환경변수 입력해서 도커 실행
✔ 수정내용 git commit해서 github에 올리기
`docker stop <이전 container_id>` 수정전 실행중이던 도커 stop
`git pull` git pull을 통해 github에 수정된 코드 가져오기
`docker build -t <도커 이미지> . ` 다시 빌드하기
`docker run ~~~ -e -e` 다시 환경변수 입력 후 도커 실행