# ベースイメージ(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 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"] |