soiz1 commited on
Commit
621418d
·
verified ·
1 Parent(s): 921b6e1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +16 -62
Dockerfile CHANGED
@@ -1,75 +1,29 @@
 
1
  FROM node:20
2
 
3
- # bashとビルドツールをインストール
4
- RUN apt-get update && apt-get install -y \
5
- bash \
6
- curl \
7
- build-essential \
8
- clang \
9
- cmake \
10
- git \
11
- pkg-config \
12
- libssl-dev
13
-
14
- # 必要ならここでRustとツールチェーンをインストール
15
- # RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
16
- # ENV PATH="/root/.cargo/bin:${PATH}"
17
- # RUN cargo install wasm-bindgen-cli wasm-opt wasm-snip
18
-
19
  WORKDIR /app
20
  COPY . .
21
 
22
- # pnpmをグローバルにインストール
 
 
 
 
 
 
23
  RUN npm install -g pnpm
24
 
25
- # 依存インストール
26
  RUN pnpm install
27
 
28
- # build.shの内容を直接実行する(RUNは分割して記述)
29
- RUN bash -c "\
30
- set -euo pipefail && \
31
- export WBG='wasm-bindgen 0.2.100' && \
32
- if ! command -v cargo wasm-bindgen wasm-opt wasm-snip &>/dev/null; then \
33
- echo 'Please install cargo, wasm-bindgen, wasm-opt, and wasm-snip!'; exit 1; \
34
- fi && \
35
- if ! [[ \"$(wasm-bindgen -V)\" =~ ^\"$WBG\" ]]; then \
36
- echo \"Incorrect wasm-bindgen version: $(wasm-bindgen -V) != $WBG\"; exit 1; \
37
- fi && \
38
- cd rewriter/wasm && \
39
- export RUSTFLAGS='-Zlocation-detail=none -Zfmt-debug=none' && \
40
- if [ \"${OPTIMIZE_FOR_SIZE:-0}\" = \"1\" ]; then \
41
- export RUSTFLAGS=\"${RUSTFLAGS} -C opt-level=z\"; \
42
- fi && \
43
- STD_FEATURES='panic_immediate_abort' && \
44
- if [ \"${OPTIMIZE_FOR_SPEED:-0}\" = \"0\" ]; then \
45
- STD_FEATURES=\"${STD_FEATURES},optimize_for_size\"; \
46
- fi && \
47
- cargo build --release --target wasm32-unknown-unknown \
48
- -Z build-std=panic_abort,std -Z build-std-features=${STD_FEATURES} \
49
- --no-default-features --features \"debug,${FEATURES:-}\" && \
50
- wasm-bindgen --target web --out-dir out/ ../target/wasm32-unknown-unknown/release/wasm.wasm && \
51
- sed -i 's/import.meta.url/\"\"/g' out/wasm.js && \
52
- cd ../../ && \
53
- wasm-snip rewriter/wasm/out/wasm_bg.wasm -o rewriter/wasm/out/wasm_snipped.wasm \
54
- -p 'oxc_regular_expression::.*' \
55
- 'oxc_parser::ts::.*' \
56
- 'oxc_parser::jsx::.*' && \
57
- if [ \"${RELEASE:-0}\" = \"1\" ]; then \
58
- G=\"--generate-global-effects\" && \
59
- wasm-opt ${WASMOPTFLAGS:-} \
60
- rewriter/wasm/out/wasm_snipped.wasm -o rewriter/wasm/out/optimized.wasm \
61
- --converge -tnh --vacuum $G -O4 $G --flatten $G --rereloop $G -Oz $G \
62
- --code-folding $G --const-hoisting $G --dae $G --merge-locals; \
63
- else \
64
- cp rewriter/wasm/out/wasm_snipped.wasm rewriter/wasm/out/optimized.wasm; \
65
- fi && \
66
- mkdir -p dist && \
67
- cp rewriter/wasm/out/optimized.wasm dist/scramjet.wasm.wasm && \
68
- echo 'Rewriter Build Complete!'"
69
 
70
- # アプリのビルド
71
  RUN pnpm build
72
 
73
- # ポート開放と起動コマンド
74
  EXPOSE 1337
75
- CMD ["pnpm", "dev"]
 
 
 
1
+ # ベースイメージ(Node.jsとpnpmを含む)
2
  FROM node:20
3
 
4
+ # 作業ディレクトリを設定
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  WORKDIR /app
6
  COPY . .
7
 
8
+ # bash をインストール
9
+ RUN apt-get update && apt-get install -y bash
10
+
11
+ RUN chmod +x rewriter/wasm/build.sh
12
+
13
+ SHELL ["/bin/bash", "-c"]
14
+ # pnpm をグローバルにインストール
15
  RUN npm install -g pnpm
16
 
17
+ # 依存関係をインストール
18
  RUN pnpm install
19
 
20
+ RUN set -eo pipefail 2>/dev/null || set -eo && bash rewriter/wasm/build.sh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ # Scramjet 全体をビルド
23
  RUN pnpm build
24
 
25
+ # ポート1337を開放
26
  EXPOSE 1337
27
+
28
+ # 開発サーバーを起動(ファイル変更に追従)
29
+ CMD ["pnpm", "dev"]