Docker 란?
컨테이너를 활용하여 소프트웨어를 배포 및 구동하기 위한 오픈소스 플랫폼이다.
Docker를 이용하면 자바(JDK), 오라클 데이터베이스, MySQL, Redis 등과 같은 다양한 소프트웨어 이미지를 쉽게 가져와 컨테이너 형태로 실행할 수 있다.
GitHub Actions를 이용해 구축한 CI 파이프라인에서 애플리케이션을 빌드한 후, 생성된 빌드 산출물을 Dockerfile을 통해 읽어와 Docker 이미지를 생성하고, push하는 과정까지를 담아보았다.
시작해보기

Github 해당 레포지토리에서 Settings 왼쪽에 Security부분에서 Actons를 가보게되면,

위 사진처럼 Repository secrets를 통해 민감한 키와 같은 내용들을 환경변수로 관리해 줄 수 있다.


도커 홈페이지에 접속해서 Repositories부분을 눌러 왼쪽에 나온 아이디가 USERNAME이다.
스크립트 작성 시 로그인 아이디와, 레포지토리의 아이디를 혼동하여 실패했었다.
workflow 만들기
- name: docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/jiwon-spring:latest .
- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_USERPASSWORD }}
- name: docker Hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/jiwon-spring:latest
첫 줄 부터 문단 별로 설명을 해보면,
1번 문단은 이미지 이름과 태그를 지정하여 빌드하는 것이다.
2번 문단은 gitaction이 도커에 접속할 수 있도록 해주는 것이고,
3번 문단은 push를 통해 이미지한 파일을 밀어넣어주는 역할을 한다.
Dockerfile 작성하기
도커파일은 찾아보니 3가지 버전이 있었는데, 연습용 기본 버전, 조금 더 세밀화 된 프로덕션용 버전, 멀티스테이지 버전이 있다.
| 빌드 위치 | GitHub Actions | GitHub Actions | Dockerfile 내부 |
| 이미지 크기 | 작음 (~150MB) | 작음 (~150MB) | 중간 (~200MB) |
| 빌드 속도 | 빠름 | 빠름 | 느림 |
| 사용 편의성 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| 환경 변수 지원 | 기본 | 커스터마이징 가능 | 기본 |
가장 기본적인, Jar파일을 복사하여 이미지로 빌드하는 것을 선택하였다.
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
/app 폴더로 들어가 jar파일을 복사하여 이미지화하는 코드이다. 폴더가 없다면 만들어서 자동으로 실행한다.
Dockerfile이 준비되었으니, gitAction을 다시 실행해보면,

workflow가 정상적으로 실행된 것을 볼 수 있다.
Docker Desktop으로 들어가 이미지가 잘 push되었는지 확인해보았다.

이미지가 잘 들어간 것을 볼 수 있다.
'BackEnd' 카테고리의 다른 글
| CICD 구현해보기 (3) - CD, EC2 배포 및 Docker Compose (1) | 2025.11.08 |
|---|---|
| AWS EC2 세팅하기 (0) | 2025.11.08 |
| CICD 구현해보기 (1) - GitAction (0) | 2025.11.06 |
| JWT + Security로 로그인 구현해보기 (2) | 2025.09.07 |
| 6/5 - Mapper 클래스, 트랜잭션 제어 (5) | 2025.06.06 |