๐ก Dockerfile์ด๋
์ปจํ ์ด๋๋ฅผ ๋น๋ํ๊ธฐ ์ํ ์ค์ ํ์ผ๋ก, ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์๋๋ก ๋์์ค๋๋ค.
Dockerfile์ ํ ์คํธ ํ์ผ๋ก ์์ฑ๋๋ฉฐ, ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐ ํ์ํ ๋ช ๋ น์ด๋ค์ ์์๋๋ก ๊ธฐ์ ํฉ๋๋ค. ๊ฐ ๋ช ๋ น์ด๋ ๊ธฐ๋ณธ ์ด๋ฏธ์ง(๋ถ๋ชจ ์ด๋ฏธ์ง)์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ , ์๋ก์ด ๋ ์ด์ด๋ฅผ ์์ฑํ์ฌ ์ต์ข ์ด๋ฏธ์ง๋ฅผ ๋ง๋ญ๋๋ค.
๋ค์์ Dockerfile์์ ์ฌ์ฉ๋๋ ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ๋ค์ ๋๋ค.
FROM | ๊ธฐ๋ณธ์ด ๋๋ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํฉ๋๋ค. |
RUN | ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ํจํค์ง๋ฅผ ์ค์นํ๊ฑฐ๋ ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค. |
COPY | ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ปจํ ์ด๋๋ก ๋ณต์ฌํฉ๋๋ค. |
ADD | COPY์ ๋น์ทํ์ง๋ง, URL๋ก๋ถํฐ ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. |
WORKDIR | ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ํฉ๋๋ค. |
ENV | ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค. |
EXPOSE | ํฌํธ๋ฅผ ์ธ๋ถ์ ๋ ธ์ถํฉ๋๋ค. |
CMD | ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์คํ๋๋ ๋ช ๋ น์ด๋ฅผ ์ค์ ํฉ๋๋ค. |
ENTRYPOINT | ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์คํ๋๋ ๋ช ๋ น์ด๋ฅผ ์ค์ ํฉ๋๋ค. |
VOLUME | ๋ณผ๋ฅจ์ ๋ง์ดํธํ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. |
USER | ๋ช ๋ น์ ์คํํ ์ฌ์ฉ์๋ฅผ ์ง์ ํฉ๋๋ค. |
ARG | ๋น๋ ์์๋ง ์ฌ์ฉ๋๋ ์ธ์๋ฅผ ์ ์ํฉ๋๋ค. |
์ด๋ฌํ ๊ตฌ๋ฌธ๋ค์ Dockerfile์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ช ๊ฐ์ง์ ๋๋ค. ๋ฌผ๋ก ๋ค์ํ ๋ค๋ฅธ ๊ตฌ๋ฌธ๋ค๋ ์์ต๋๋ค. ์ด๋ฌํ ๊ตฌ๋ฌธ๋ค์ ์กฐํฉํ์ฌ ์ํ๋ ํ๊ฒฝ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋์ปค ํ์ผ์ ํ๋ก์ ํธ ๋ด๋ถ์ ์๋์ ๊ฐ์ ํ์์ผ๋ก ๋ง๋ค์ด์ค๋๋ค.
FROM ์ด๋ค ๊ฑฐ ์์ JDK๋ฅผ ์น์ ๊ฒ์ธ์ง
ARG .jar๋ฑ ํ์ผ ์ข
๋ฃ
COPY build/libs/discovery-server-0.0.1-SNAPSHOT.jar app.jar ๋น๋ ํ์ผ ๊ฒฝ๋ก๋ฅผ app.jar ์ด๋ฆ์ผ๋ก ์ฌ์ฉ
EXPOSE 80 # ๋
ธ์ถ ํฌํธ๋ฒํธ๋ก yml ํ์ผ์ ์์ฑํ์ผ๋ฉด ์๋ต ๊ฐ๋ฅ
ENTRYPOINT ["java","-jar","/app.jar"]
https://spring.io/guides/topicals/spring-boot-docker/
Getting Started | Spring Boot Docker
The Spring Boot Maven and Gradle plugins use buildpacks in exactly the same way that the pack CLI does in the following examples. The resulting images are identical, given the same inputs. Cloud Foundry has used containers internally for many years now, an
spring.io
๐Dockerfile ์ ์ฉ
0.Dockerfile ์์ฑ
1. Dockerfile ๋น๋ ์คํฌ๋ฆฝํธ ์์ฑ
FROM eclipse-temurin:17
ARG JAR_FILE=*.jar
COPY build/libs/project-0.0.1-SNAPSHOT.jat app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
2. ์๋ฐ ํ๋ก์ ํธ ๋น๋
Grdale -> Tasks->clean ํ Grdale -> Tasks->build ๋๋ ํฐ๋ฏธ๋ ์ฐฝ์์ ./gradlew clean build ์ ๋ ฅ
3. build->libs->ํ์ผ๋ช ์ผ๋ก COPY ์์ ํ docker build
# ๋์ปค ์ด๋ฏธ์ง๋ก ๋น๋ ๋ช
๋ น์ด
docker build -t myorg/myapp .
์ธํ ๋ฆฌ์ ์ด ํฐ๋ฏธ๋ ์ฐฝ์์ ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๊ทธ๋ผ ์๋์ ๊ฐ์ด ์ฑ๊ณตํจ์ ๋ณผ ์ ์์ต๋๋ค.
4. ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํํ์ฌ ์ธํ ๋ฆฌ์ ์ด ์์ด ์คํ ๊ฐ๋ฅํฉ๋๋ค.
docker run -p 8761:8761 myorg/myapp
# ๋ฆฌ๋ ์ค ์ค๋ ์ต ๊ธฐ๋ฅ์ ํตํด ๋์ปค๊น์ง ์ค์น๋ PC๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฐ์ด ์คํ ๊ฐ๋ฅํฉ๋๋ค^^
'์ธํ๋ผ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
GCP ์ฐ๋ถํฌ์์ ๋์ปค ์ค์นํ๊ธฐ (0) | 2024.02.27 |
---|---|
๋์ปค๋ผ์ด์ฆ ์ด๋ฏธ์ง๋ฅผ ํ์ฉํ ๋์ปคํ๋ธ ์ ๋ก๋ (1) | 2023.11.27 |
Docker -detach๋ชจ๋, -attach๋ชจ๋, -it ์ต์ ๋ฑ (0) | 2023.11.25 |
์ปจํ ์ด๋ Paused, Deleted + ๋์ปค prune ๋ช ๋ น์ด ์ฌ์ฉ (0) | 2023.11.16 |
๋์ปค ์ปจํ ์ด๋๋ฅผ ํ์ฉํ ์๋ํํฐ ์ค์น, ๊ฐ๋ํ๊ธฐ (1) | 2023.11.02 |