Cloud Architect/Docker
Chapter 9. Building a website with Dockerfile
"Everything about infra"
2025. 12. 3. 16:43

안녕하세요,
지금까지의 챕터들에서 배운 내용을 기반으로
웹사이트를 직접 빌드하는 시간을 갖도록 하겠습니다.
Dockerfile 작성 & 컨테이너 빌드
예전에 프로젝트로 Kubernetes환경에서 eCommerce를 직접 띄워봤을 때 사용하던 resource로
요번에는 Docker 환경에서 띄워보도록 하겠습니다 :)
(참고로, 동적 이미지를 처리하는 WAS와 Database와 연동이 되어있지 않으므로 UI만 보여드리겠습니다.)
✅ 현재 웹 구성
- 웹페이지를 꾸며주는 css, font, html, img 등이 포함되어 있습니다.
- 그래서 저희가 이 웹 루트 디렉토리에 Dockerfile을 작성하여 같이 띄워보도록 하겠습니다.

✅ Dockerfile
- 하기와 같이 Dockerfile을 작성하여 웹 서버 루트 디렉토리(vintage-project)에 위치한 후 빌드.
- Dockerfile에 작성된 내용들을 한번 해석해봅시다 (경량화를 위해 alpine을 사용하여 배포하였음)
FROM alpine:3.18
# wget과 tar 설치
RUN apk add wget tar && \
apk add --upgrade apk-tools && \
apk upgrade --available --ignore openjdk17-jdk && \
sync
# Install OpenJDK 17
RUN apk --no-cache add openjdk17 gcompat --repository=https://dl-cdn.alpinelinux.org/alpine/v3.17/community
ENV HOME /root
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
# Tomcat 설치
RUN apk update && \
mkdir -p /opt/tomcat && \
wget -O tomcat.tar.gz https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz && \
tar xvfz tomcat.tar.gz -C /opt/tomcat --strip-components=1 && \
rm tomcat.tar.gz && \
apk del wget
# 웹 루트 디렉토리 파일을 컨테이너 내의 특정 경로로 복사합니다.
COPY VintagePub-War/ /opt/tomcat/webapps/VintagePub-War/
WORKDIR /opt/tomcat/bin
EXPOSE 8080
CMD ["./catalina.sh", "run"]
- Dockerfile 빌드가 정상적으로 완료가 되었다면, 확인해보자

- Docker image를 빌드하였으면 컨테이너 환경으로 구성해보자.

- 현재 Vintage 쇼핑몰의 웹사이트 메인 화면의 띄워진걸 확인할 수 있다!!




이런식으로 Dockerfile을 생성하고, 그 Dockerfile을 기반으로 Image를 생성하고 빌드를 한 후
Docker Container로 인프라를 구성하여 웹에 배포까지 하는 방법에 대해 배워보았습니다.
감사합니다 !