Dockerfile
Dockerfile은 새로운 image 를 만들기 위한 명령을 포함하고 있는 파일이다.
이 파일에 작성된 명령어와 base image를 통해 새로운 환경의 image를 만들 수 있다.
Spring Project에 Dockerfile 생성 및 작성
아래 사진과 같이 자신의 Spring 프로젝트 폴더에 Dockerfile 이라는 이름의 파일을 생성해 준다.
FROM openjdk:18-ea-jdk-slim
VOLUME /tmp
COPY build/libs/community-service-0.0.1-SNAPSHOT.jar community-service.jar
ENTRYPOINT ["java","-jar","community-service.jar"]
작성 내용
- FROM : 새로 생성할 Image 의 기반으로 사용할 image를 지정한다
- openjdk:18-ea-jdk-slim Image를 포함한 image 생성
- COPY : 지정된 경로의 호스트 파일을 container에 복사
- build 된 jar 파일을 container 내부에 복사
- ENTRYPOINT : container 실행 시 추가로 수행할 실행 커맨드 입력
- 복사한 community-service.jar 파일 실행
image build
Dockerfile을 작성하였다면 build를 하여 jar 파일을 만들어 준다.
./gradlew clean build --exclude-task test
- clean : 기존의 jar파일을 삭제하고 build
- --exclude-task test : 테스트 코드들은 build 에서 skip
build가 다 되고 jar파일이 생성이 되었다면 아래 명령어를 입력해 image를 생성한다.
docker build --tag blac2013/community-service:0.0.1 .
- --tag 뒤로는 자신의 Docker hub 계정 이름(push를 위해 로컬 저장소에 저장) / 생성할 image 이름
build가 다 되면 docker images 명령어를 통해 image가 추가된것을 확인할 수 있다.
image push
만들어진 image 파일을 hub의 계정 repository 로 push하려면 아래 명령어를 입력한다.
docker push blac2013/community-service:0.0.1
push가 완료 되면 docker hub의 reposiotries에 추가가된다.
image pull (test)
먼저 기존에 생성한 image 를 삭제한다.
docker rmi [image id]
명령어를 입력하고 image 목록을 확인해보면 삭제된 것을 확인할 수 있다.
docker pull blac2013/community-service:0.0.1
위의 명령어를 자신의 repository 계정과 image 이름에 맞게 입력을 하면
다음 로그들과 함께 image 목록에도 추가가 되었다.
image run
docker run blac2013/community-service:0.0.1
위 명령어를 입력하여 실행해보면 spring boot 가 실행된다.
+
도커관련된 글을 작성하다보니 소소한 협찬을 받게 되었다.
감기가 걸려 코를 풀 때도 도커 생각이 떠오르며 업무에 한 층 더 심혈을 기울일 수 있게 될거같다.
백엔드 개발자 책상이 점점 더 개발자 스러워지고 있다. 좋은 현상인지는 모르겠지만 어쨌든 주변에서는 나를 좀더 프로페셔널한 백엔드 개발자로 봐준다면 그건 개인적으로 좋은 변화라는 생각이 든다.
내가 쓴 글의 처음 취지가 어떤 누군가에게 도움을 주기 위해 쓴 글들은 아니었지만 이렇게 협찬품을 제공해준 분에게라도 도움이 될 수도 있다고 생각하니 가슴이 벅차오른다.
'Docker' 카테고리의 다른 글
[Docker] Docker에서 RabbitMQ Image생성 및 실행 (0) | 2021.11.17 |
---|---|
[Docker] Docker의 Network 종류 및 명령어 (0) | 2021.11.17 |
[Docker] Docker 명령어 (추가 중) (0) | 2021.11.16 |
[Docker] Docker PostgreSQL 설치 및 실행 (0) | 2021.11.16 |
[Docker] Docker Desktop 설치 및 사용법 (for mac) (2) | 2021.11.15 |