File size: 1,119 Bytes
089660a
 
 
 
 
 
 
 
 
6a081de
 
089660a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# ---- builder: build Java -> JavaScript using gradle wrapper (TeaVM) ----
FROM openjdk:17-jdk-slim AS builder

WORKDIR /src

# 必要ツールを入れる
RUN apt-get update && \
    apt-get install -y --no-install-recommends bash ca-certificates git wget unzip && \
    rm -rf /var/lib/apt/lists/*
    
ENV JAVA_TOOL_OPTIONS="--enable-preview"

# ソースをコンテナにコピー
COPY . /src

# gradlew を実行可能にして、JavaScript を生成する gradle タスクを実行
# (リポジトリの README にある "CompileJS / generateJavaScript" 相当)
RUN chmod +x ./gradlew && \
    # テストなどはスキップして素早くビルド(必要ならオプションを調整)
    ./gradlew generateJavaScript -x test --no-daemon

# ---- runtime: nginx serve built javascript ----
FROM nginx:stable-alpine AS runtime

# ビルド成果物(javascriptフォルダ)を nginx のドキュメントルートへコピー
COPY --from=builder /src/javascript /usr/share/nginx/html

# 必要ならカスタム nginx.conf を追加する(省略可)
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]