# ベースイメージ(Node.jsとpnpmを含む) FROM node:20 # 作業ディレクトリを設定 WORKDIR /app COPY . . # Rustインストール用スクリプトを使う RUN curl https://sh.rustup.rs -sSf | sh -s -- -y # パスを通す(cargoを使えるように) ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup update stable RUN curl -L https://github.com/WebAssembly/binaryen/releases/download/version_123/binaryen-version_123-x86_64-linux.tar.gz \ | tar -xz -C /usr/local --strip-components=1 RUN cd /app/rewriter && cargo update RUN cargo install wasm-bindgen-cli RUN cargo install wasm-snip RUN apt-get update && apt-get install -y binaryen # bash をインストール RUN apt-get update && apt-get install -y bash RUN chmod +x rewriter/wasm/build.sh SHELL ["/bin/bash", "-c"] # pnpm をグローバルにインストール RUN npm install -g pnpm # 依存関係をインストール RUN pnpm install RUN pnpm rewriter:build RUN bash rewriter/wasm/build.sh # Scramjet 全体をビルド RUN pnpm build # ポート1337を開放 EXPOSE 1337 # 開発サーバーを起動(ファイル変更に追従) CMD ["pnpm", "dev"]