GitHub PagesのコンテンツをGitHubリポジトリから自動取得してNginxで配信するDockerコンテナイメージです。
このDockerイメージは以下の機能を提供します:
gh_pagesブランチからコンテンツを自動ダウンロード以下の環境変数を設定する必要があります:
| 環境変数 | 説明 | 例 |
|---|---|---|
GITHUB_REPO_OWNER | GitHubリポジトリのオーナー名 | procube-open |
GITHUB_REPO_NAME | GitHubリポジトリ名 | my-website |
GITHUB_TOKEN | GitHub Personal Access Token | ghp_xxxxxxxxxxxxxxxxxxxx |
docker pull procube/gh-pages-nginx:latest
docker run -d \
-p 80:80 \
-e GITHUB_REPO_OWNER=your-username \
-e GITHUB_REPO_NAME=your-repo-name \
-e GITHUB_TOKEN=your-github-token \
--name gh-pages-server \
procube/gh-pages-nginx:latest
ブラウザで http://localhost:8080 にアクセスしてください。
repo (プライベートリポジトリの場合)public_repo (パブリックリポジトリのみの場合)GITHUB_TOKEN環境変数に設定version: '3.8'
services:
gh-pages:
image: procube/gh-pages-nginx:latest
ports:
- "8080:80"
environment:
GITHUB_REPO_OWNER: your-username
GITHUB_REPO_NAME: your-repo-name
GITHUB_TOKEN: your-github-token
restart: unless-stopped
リポジトリをクローン:
git clone https://github.com/procube-open/gh-pages-docker.git
cd gh-pages-docker
VS Codeで開発コンテナを起動:
code .
# VS Codeで「Dev Containers: Reopen in Container」を実行
Dockerイメージをビルド:
docker build -t gh-pages-nginx .
ローカルでテスト:
docker run -d -p 8080:80 \
-e GITHUB_REPO_OWNER=your-username \
-e GITHUB_REPO_NAME=your-repo-name \
-e GITHUB_TOKEN=your-github-token \
gh-pages-nginx
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ GitHub Repo │ │ Docker Image │ │ Web Browser │
│ (gh_pages) │───▶│ │───▶│ │
│ │ │ ┌──────────────┐ │ │ localhost:8080 │
└─────────────────┘ │ │ entrypoint.sh│ │ └─────────────────┘
│ │ - Download │ │
│ │ - Extract │ │
│ │ - Start │ │
│ └──────────────┘ │
│ ┌──────────────┐ │
│ │ Nginx │ │
│ │ Server │ │
│ └──────────────┘ │
└──────────────────┘
gh-pages-docker/
├── Dockerfile # メインのDockerイメージ定義
├── entrypoint.sh # コンテナ起動時の処理スクリプト
├── nginx.conf # Nginx設定ファイル
├── package.json # バージョン管理用
├── .devcontainer/ # VS Code開発コンテナ設定
│ └── devcontainer.json
├── .github/workflows/ # GitHub Actions
│ └── publish.yml
└── README.md # このファイル
gh_pagesブランチが存在するか確認ダウンロードログを確認:
docker logs container-name
gh_pagesブランチにHTMLファイルが存在するか確認
このプロジェクトはMITライセンスの下で公開されています。
プルリクエストやイシューの報告を歓迎します。開発に参加する際は、開発コンテナを使用することを推奨します。
Content type
Image
Digest
sha256:c2e0b8b84…
Size
21.5 MB
Last updated
about 1 year ago
docker pull procube/gh-pages-nginx