
シェル芸オンラインジャッジ:システム全体をDockerコンテナ内で動かす
はじめに シェル芸オンラインジャッジというウェブサイトを開発しています。 今回はフロントエンドとバックエンドをDockerコンテナ内で動かすように変更しました。 nginxもコンテナ内で動かしています。 シェル芸オンラインジャッジ 修正方法について シェル芸オンラインジャッジのソースコードを丸ごとGeminiに渡して、 具体的に修正方法を聞いて修正しました。 今回はDockerfileやdocker-compose.yml、nginxのconfファイルなどについて教えてもらいました。 シェル芸オンラインジャッジのシステム構成図 Nano Banana Proに生成してもらった現状のシステム構成図です。 システム構成 Dockerfile Frontend 下記がフロントエンドのDockerfileです。 主にフロントエンド側のビルドとnginxの設定・起動を行っています。 問題データのファイルもコンテナ内にコピーしています。 # --- Build Stage --- FROM node:22 AS builder WORKDIR /app COPY frontend/package.json frontend/yarn.lock* ./ RUN yarn install --frozen-lockfile COPY frontend/ ./ RUN yarn build # --- Serve Stage --- FROM nginx:alpine # ビルド成果物をNginxの公開ディレクトリにコピー COPY --from=builder /app/build /usr/share/nginx/html # 問題データを公開ディレクトリにコピー COPY problems/ /usr/share/nginx/html/ # Nginx設定ファイルをコピー COPY frontend/nginx/default.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] nginxの設定ファイルはあらかじめ用意しておいてコンテナ内へコピーします。 一応80番ポートの設定を書いていますが、実際は443ポートだけ受け付けます。 ...






