-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile-staging
More file actions
42 lines (28 loc) Β· 1.63 KB
/
Copy pathDockerfile-staging
File metadata and controls
42 lines (28 loc) Β· 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# =================================================================
# Stage 1: Builder - λ€μ΄ν°λΈ μ€ν νμΌμ λ§λλ λ¨κ³
# =================================================================
# [μ΅μ’
νμΈ] μ€λ₯ μλ 곡μ GraalVM μ΄λ―Έμ§λ₯Ό μ¬μ©ν©λλ€.
FROM ghcr.io/graalvm/community:21 as builder
WORKDIR /build
# 1. λ¨Όμ λΉλμ νμν νμΌλ€λ§ 볡μ¬ν©λλ€.
COPY build.gradle.kts settings.gradle.kts gradlew ./
COPY gradle ./gradle
# 2. λΌμ΄λΈλ¬λ¦¬ μμ‘΄μ±μ λ¨Όμ λ€μ΄λ‘λν©λλ€. (μ΄ λ¨κ³λ μμ£Ό λ°λμ§ μμΌλ―λ‘ μΊμλ©λλ€)
RUN ./gradlew dependencies
# 3. μμ€ μ½λ μ 체λ₯Ό 볡μ¬ν©λλ€. (μμ€ μ½λλ§ λ³κ²½ μ μ λ¨κ³λ μΊμλ₯Ό μ¬μ©ν©λλ€)
COPY . .
# 4. λ€μ΄ν°λΈ μ€ν νμΌμ λΉλν©λλ€.
RUN ./gradlew nativeCompile
# =================================================================
# Stage 2: Runner - μ΅μ’
μ€ν μ΄λ―Έμ§λ₯Ό λ§λλ λ¨κ³
# =================================================================
# JVMμ΄ μλ μ΄κ²½λ(Distroless) μ΄λ―Έμ§λ₯Ό μ¬μ©νμ¬ λ³΄μκ³Ό ν¨μ¨μ λμ
λλ€.
FROM gcr.io/distroless/cc-debian12
WORKDIR /app
# Builder(1λ¨κ³)μμ λ§λ€μ΄μ§ λ€μ΄ν°λΈ μ€ν νμΌ 'νλλ§' 볡μ¬ν΄μ΅λλ€.
COPY --from=builder /build/build/native/nativeCompile/server-kotlin .
# EXPOSEλ λ¬Έμν λͺ©μ μΌλ‘, νμ€ ν¬νΈ(8080)λ₯Ό λͺ
μν©λλ€.
EXPOSE 8080
# λͺ¨λ μ€μ (νλ‘νμΌ, ν¬νΈ λ±)μ deploy.sh μ€ν¬λ¦½νΈμμ νκ²½λ³μλ‘ μ£Όμ
λλ―λ‘
# Dockerfileμ μ΄λ€ νκ²½μλ μ’
μλμ§ μλ λ²μ©μ±μ κ°κ² λ©λλ€.
CMD ["./server-kotlin"]