【Docker】(4) VPS上のホームページをWindowsで編集する場合、Dockerで持ってくるべきか?それともそのまま編集すべきか?

Docker

1. はじめに

VPS上のUbuntuにホームページを構築したあと、Windows側のVS Codeなどで編集したい場合、よく迷うのが次の点である。

VPS上のホームページをWindowsに持ってきて編集したい。
このとき、Dockerを使うべきか?
それとも、そのままGitで持ってくればよいのか?

結論から言うと、ホームページの種類によって判断が変わる

  • HTML / CSS / JavaScript中心の静的サイト:基本的にはDocker不要
  • React、Next.js、Node.js、FastAPI、Pythonアプリなど、実行環境に依存するWebアプリ:Dockerを使う価値あり

2. 結論

まず、最初に結論を示す。

静的ホームページなら、DockerなしでGit管理するのが簡単。
Webアプリやビルド環境が必要な場合は、Dockerを使う価値がある。

ここで重要なのは、Dockerはファイルを持ってくる道具ではないということである。

Dockerは、以下のために使う。

同じ実行環境をWindows、Linux、VPS、本番環境で再現するための仕組み

したがって、「Dockerでホームページを持ってくる」というより、正しくは、

ホームページのソースコードはGitで管理する。
Dockerは、そのソースコードを動かす環境を固定するために使う。

という理解が正しい。


3. Dockerを使わない方がよいケース

以下のようなホームページであれば、Dockerは必須ではない。

index.html
style.css
script.js
画像ファイル
静的LP
単純な会社ホームページ
WordPressとは別に置いた静的ページ

この場合、Windowsで編集したいなら、Gitを使って以下の流れにするのが最も簡単である。

VPS上のホームページをGit管理

GitHubへpush

Windowsでgit clone

VS Codeで編集

GitHubへpush

VPSでgit pull

この運用であれば、Dockerは不要である。


4. Dockerを使うべきケース

一方、以下のような構成の場合は、Dockerを使う価値が高い。

React / Vite / Next.js を使っている
Node.jsで動作するアプリである
FastAPIなどPythonのバックエンドがある
npm install や npm run build が必要
Pythonの仮想環境やuvを使っている
WindowsとLinuxで動作が変わる可能性がある
本番VPSと同じ環境で動作確認したい

このような場合、Windowsで直接動かすと、以下のような問題が起きやすい。

Node.jsのバージョンが違う
Pythonのバージョンが違う
依存ライブラリが違う
Windowsでは動くがUbuntuでは動かない
パスの区切り文字が違う
ポート設定が違う
環境変数が違う

このような環境差分を減らすために、Dockerを使う。


5. 基本方針

ホームページやWebアプリをWindowsで編集し、VPSに反映する場合の基本方針は以下である。

ソースコードの移動・共有 → Git
実行環境の再現 → Docker
本番反映 → VPSでgit pull、またはDockerコンテナ再起動

つまり、役割分担はこうなる。

目的使うもの
ソースコードを管理するGit / GitHub
Windowsで編集するVS Code
環境を再現するDocker
VPS上で公開するNginx / Node.js / Docker
本番反映するgit pull / docker compose up

6. Dockerなしの運用手順

静的サイトや単純なホームページであれば、まずはこの方法がよい。

6.1 VPS側でGit管理されているか確認する

VPSにSSH接続して、ホームページのディレクトリに移動する。

cd /srv/ono-piano.com/OnoPiano.Com2026
git status

以下のように表示されれば、Git管理されている。

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

この状態なら、Windows側にcloneして編集できる。


6.2 Windows側でcloneする

WindowsのPowerShellまたはGit Bashで以下を実行する。

git clone git@github.com:ユーザー名/リポジトリ名.git

cloneしたディレクトリに入る。

cd リポジトリ名
code .

これでVS Codeが開く。


6.3 Windowsで編集してGitHubへpushする

Windows側でファイルを編集したら、以下を実行する。

git add .
git commit -m "Update homepage"
git push

6.4 VPS側で反映する

VPS側で以下を実行する。

cd /srv/ono-piano.com/OnoPiano.Com2026
git pull

これで、Windowsで編集した内容がVPS側に反映される。


7. Dockerを使う場合の基本構成

Dockerを使う場合でも、ソースコードはGitで管理する。

Dockerを使う場合のディレクトリ構成例は以下である。

OnoPiano.Com2026/
├─ index.html
├─ src/
├─ package.json
├─ Dockerfile
├─ docker-compose.yml
└─ README.md

このうち、Dockerに関係する重要ファイルは以下である。

Dockerfile
docker-compose.yml

8. 静的HTMLサイトをDockerで動かす例

単純なHTMLサイトをDockerで確認する場合、Nginxを使うのが簡単である。

8.1 Dockerfile

FROM nginx:alpine

COPY . /usr/share/nginx/html

このDockerfileは、現在のディレクトリのファイルをNginxの公開ディレクトリにコピーする。


8.2 docker-compose.yml

services:
web:
build: .
ports:
- "8080:80"

この設定では、コンテナ内の80番ポートを、Windows側の8080番ポートに接続する。


8.3 Windowsで起動する

docker compose up --build

ブラウザで以下を開く。

http://localhost:8080

これで、Windows上でNginxを使ってホームページを確認できる。


9. React / Vite系サイトの場合

ReactやViteで作られたホームページの場合、通常は以下のような構成になる。

package.json
src/
public/
index.html

この場合、まずWindows上で以下を実行する。

npm install
npm run dev

開発用サーバーが起動し、ブラウザで確認できる。

本番用ファイルを作る場合は以下を実行する。

npm run build

多くの場合、以下のような dist フォルダが作成される。

dist/
├─ index.html
├─ assets/

VPSに公開するのは、基本的にはこの dist の中身である。


10. ReactサイトをDockerで動かす例

ReactやViteのようにビルドが必要な場合、Dockerfileは2段階構成にするとよい。

FROM node:20-alpine AS build

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .
RUN npm run build

FROM nginx:alpine

COPY --from=build /app/dist /usr/share/nginx/html

このDockerfileでは、前半でReactアプリをビルドし、後半でNginxにより静的ファイルを配信する。


11. docker-compose.ymlの例

services:
web:
build: .
ports:
- "8080:80"

起動コマンドは以下である。

docker compose up --build

ブラウザでは以下にアクセスする。

http://localhost:8080

12. 「Dockerで持ってくる」という表現について

実務的には、「Dockerで持ってくる」という表現は少し不正確である。

正しくは、以下のように考える。

ソースコードはGitで持ってくる。
Dockerfileとdocker-compose.ymlもリポジトリに含める。
Windows側でdocker compose upする。

つまり、Dockerそのものをダウンロードしてホームページを移すのではなく、Dockerで動かせる形にプロジェクトを整備するという意味になる。

英語では、この作業をよく次のように言う。

Dockerize the project.

意味は、

プロジェクトをDocker対応にする

である。


13. 推奨する実務フロー

現実的には、以下の順番で進めるのがよい。

Step 1: まずGitでWindowsに持ってくる
Step 2: WindowsのVS Codeで編集する
Step 3: ローカルで動作確認する
Step 4: GitHubへpushする
Step 5: VPSでgit pullする
Step 6: 必要になったらDocker化する

最初からDockerを使う必要はない。

特に、単純なホームページやLPであれば、Dockerを導入すると、かえって管理が複雑になる場合がある。


14. Dockerを導入する判断基準

Dockerを入れるべきかどうかは、以下で判断するとよい。

状況Dockerの必要性
HTML / CSSだけ低い
静的LP低い
WordPress配下に置く静的ページ低い
React / Viteでビルドが必要
Node.jsアプリとして動作高い
FastAPIなどバックエンドあり高い
WindowsとUbuntuで動作差がある高い
本番と同じ環境で検証したい高い

15. 最終結論

VPS上のUbuntuで作ったホームページをWindowsで編集する場合、まず考えるべきことは、DockerではなくGitである。

ソースコード管理はGit
環境再現はDocker

この役割分担を明確にすると混乱しにくい。

単純なホームページなら、以下で十分である。

Git clone
VS Codeで編集
Git push
VPSでgit pull

一方、React、Node.js、FastAPIなどを使ったWebアプリであれば、Dockerを使うことで、WindowsとVPSの環境差を小さくできる。

したがって、今回のようなケースでは、まずは以下の方針がよい。

最初はDockerなしでGit運用する。
環境差やビルドの複雑さが出てきたらDocker化する。

Dockerは「ファイルを持ってくる道具」ではなく、「同じ環境で動かすための道具」である。
この理解が、VPS、Windows、Git、Dockerを正しく使い分ける上で重要である。

コメント

タイトルとURLをコピーしました