Dockerfile
FROM openjdk:17-jdk-slim
# JAR 파일을 빌드된 애플리케이션으로 설정
ARG JAR_FILE=build/libs/*.jar
# JAR 파일을 이미지에 복사
COPY ${JAR_FILE} /app.jar
# 애플리케이션을 실행할 명령어 설정
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "/app.jar"]
docker compose 파일 없을 때
도커 이미지 생성 docker build -t [이미지 태그명] .
# 기본 커맨드
# -d: detach mode (백그라운드로 실행됨)
# -p: 호스트에 연결된 컨테이너의 특정 포트를 외부에 노출하기 위해 사용
# docker run -d -p [호스트 port]:[컨테이너 port] [DockerHub ID]/[이미지명]
# : Docker Image를 실행한 형태인 컨테이너로 만드는 명령어
docker run -d -p 8080:8080 [이미지이름]
docker compose 파일 있을 때
docker-compose.yml
services:
[서비스이름]:
image: [이미지이름]
env_file:
- .env # .env 파일을 지정
ports:
- "8080:8080" # 포트 매핑
gradle build
./gradlew clean bootJar
1. 이미지 생성
docker-compose build
2. 로컬에서 실행 확인하기 => 생략 가능
docker-compose up -d
3. 생성된 이미지 확인
docker images
4. docker hub로 이미지 올리기
docker push [DockerHub Id]/[image 파일명]
5. ec2 접속
ssh -i 받은키페어를끌어다놓기 ubuntu@[AWS ip 주소]
6. 관리자 권한 실행
sudo -s
7. ec2 에서 docekr pull 받기
docker pull [dockerHub Id]/[이미지명]
8.
ec2 root파일에 .env파일이랑 docker-compose.yml 추가하기
9. 백그라운드 실행
docker-compose up -d
10. 로그 확인
docker logs [컨테이너 id]
ec2에서 postgresql 접속
psql -h [RDS 주소] -U postgres -d [DB명]
소스 수정 후 재빌드
같은 이름의 이미지로 빌드하기
docker build --no-cache -t my-image:latest .
docker-compose up (로컬에서 테스트 하고 올리기!)
docker push
docker pull
docker-compose down
docker-compose up
오늘의 tmi)
그동안 왜 도커를 사용하는지? 와닿지 않았는데
직접 배포를 해보니 도커의 편리함을 알게 되었다.
안 친했던 도커와 한층 가까워진 기분이 든다....ㅎ🙂
'TIL' 카테고리의 다른 글
[TIL 2024/09/04] 깃허브(GitHub) 사용법 & 협업방법 (0) | 2024.09.04 |
---|---|
[TIL 2024/09/03] Postman API 자동화 테스트 (0) | 2024.09.04 |
[TIL] 2024/08/30 (0) | 2024.09.02 |
[TIL] 2024/08/29 (0) | 2024.09.02 |
[TIL] 2024/08/28 (0) | 2024.08.29 |