Skip to content

Commit c8949ea

Browse files
committed
add docker for local jekyll
1 parent 2a3208e commit c8949ea

File tree

5 files changed

+342
-0
lines changed

5 files changed

+342
-0
lines changed

docker-jekyll-local/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM jekyll/jekyll:4.2.2
2+
3+
WORKDIR /srv/jekyll
4+
5+
# Copy the docs directory
6+
COPY docs/ ./
7+
8+
# Install dependencies
9+
RUN bundle install
10+
11+
EXPOSE 4000
12+
13+
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--port", "4000"]

docker-jekyll-local/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Jekyll Local Development with Docker
2+
3+
This repository includes Docker setup for running Jekyll locally to preview the GitHub Pages site.
4+
5+
## Quick Start
6+
7+
### Start Jekyll
8+
```bash
9+
cd docker-jekyll-local
10+
docker-compose up
11+
```
12+
13+
### View your site
14+
Open http://localhost:4000/SandDance/ in your browser
15+
16+
### Stop Jekyll
17+
Type ctrl-C in the terminal running `docker-compose up`
18+
19+
## Other useful commands
20+
21+
### Rebuild after changes
22+
```bash
23+
cd docker-jekyll-local
24+
docker-compose build
25+
```
26+
27+
## Files
28+
29+
- `docker-jekyll-local/Dockerfile` - Jekyll container setup for local development
30+
- `docker-jekyll-local/docker-compose.yml` - Container orchestration for local development
31+
- `docs/Gemfile` - Jekyll dependencies (same as GitHub Pages)
32+
- `docs/_config.yml` - Jekyll configuration
33+
34+
The setup uses the same `github-pages` gem as GitHub Pages to ensure compatibility.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
services:
2+
jekyll:
3+
build:
4+
context: ..
5+
dockerfile: docker-jekyll-local/Dockerfile
6+
ports:
7+
- "4000:4000"
8+
volumes:
9+
- ../docs:/srv/jekyll
10+
command: bundle exec jekyll serve --host 0.0.0.0 --port 4000 --force_polling

docs/Gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
source "https://rubygems.org"
2+
3+
gem "github-pages", group: :jekyll_plugins
4+
gem "webrick", "~> 1.7"

docs/Gemfile.lock

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,281 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
activesupport (7.2.2.2)
5+
base64
6+
benchmark (>= 0.3)
7+
bigdecimal
8+
concurrent-ruby (~> 1.0, >= 1.3.1)
9+
connection_pool (>= 2.2.5)
10+
drb
11+
i18n (>= 1.6, < 2)
12+
logger (>= 1.4.2)
13+
minitest (>= 5.1)
14+
securerandom (>= 0.3)
15+
tzinfo (~> 2.0, >= 2.0.5)
16+
addressable (2.8.7)
17+
public_suffix (>= 2.0.2, < 7.0)
18+
base64 (0.2.0)
19+
benchmark (0.4.1)
20+
bigdecimal (3.2.2)
21+
coffee-script (2.4.1)
22+
coffee-script-source
23+
execjs
24+
coffee-script-source (1.12.2)
25+
colorator (1.1.0)
26+
commonmarker (0.23.11)
27+
concurrent-ruby (1.3.5)
28+
connection_pool (2.5.3)
29+
csv (3.3.5)
30+
dnsruby (1.72.4)
31+
base64 (~> 0.2.0)
32+
logger (~> 1.6.5)
33+
simpleidn (~> 0.2.1)
34+
drb (2.2.3)
35+
em-websocket (0.5.3)
36+
eventmachine (>= 0.12.9)
37+
http_parser.rb (~> 0)
38+
ethon (0.15.0)
39+
ffi (>= 1.15.0)
40+
eventmachine (1.2.7)
41+
execjs (2.10.0)
42+
faraday (2.13.4)
43+
faraday-net_http (>= 2.0, < 3.5)
44+
json
45+
logger
46+
faraday-net_http (3.4.1)
47+
net-http (>= 0.5.0)
48+
ffi (1.17.2-x86_64-linux-musl)
49+
forwardable-extended (2.6.0)
50+
gemoji (4.1.0)
51+
github-pages (232)
52+
github-pages-health-check (= 1.18.2)
53+
jekyll (= 3.10.0)
54+
jekyll-avatar (= 0.8.0)
55+
jekyll-coffeescript (= 1.2.2)
56+
jekyll-commonmark-ghpages (= 0.5.1)
57+
jekyll-default-layout (= 0.1.5)
58+
jekyll-feed (= 0.17.0)
59+
jekyll-gist (= 1.5.0)
60+
jekyll-github-metadata (= 2.16.1)
61+
jekyll-include-cache (= 0.2.1)
62+
jekyll-mentions (= 1.6.0)
63+
jekyll-optional-front-matter (= 0.3.2)
64+
jekyll-paginate (= 1.1.0)
65+
jekyll-readme-index (= 0.3.0)
66+
jekyll-redirect-from (= 0.16.0)
67+
jekyll-relative-links (= 0.6.1)
68+
jekyll-remote-theme (= 0.4.3)
69+
jekyll-sass-converter (= 1.5.2)
70+
jekyll-seo-tag (= 2.8.0)
71+
jekyll-sitemap (= 1.4.0)
72+
jekyll-swiss (= 1.0.0)
73+
jekyll-theme-architect (= 0.2.0)
74+
jekyll-theme-cayman (= 0.2.0)
75+
jekyll-theme-dinky (= 0.2.0)
76+
jekyll-theme-hacker (= 0.2.0)
77+
jekyll-theme-leap-day (= 0.2.0)
78+
jekyll-theme-merlot (= 0.2.0)
79+
jekyll-theme-midnight (= 0.2.0)
80+
jekyll-theme-minimal (= 0.2.0)
81+
jekyll-theme-modernist (= 0.2.0)
82+
jekyll-theme-primer (= 0.6.0)
83+
jekyll-theme-slate (= 0.2.0)
84+
jekyll-theme-tactile (= 0.2.0)
85+
jekyll-theme-time-machine (= 0.2.0)
86+
jekyll-titles-from-headings (= 0.5.3)
87+
jemoji (= 0.13.0)
88+
kramdown (= 2.4.0)
89+
kramdown-parser-gfm (= 1.1.0)
90+
liquid (= 4.0.4)
91+
mercenary (~> 0.3)
92+
minima (= 2.5.1)
93+
nokogiri (>= 1.16.2, < 2.0)
94+
rouge (= 3.30.0)
95+
terminal-table (~> 1.4)
96+
webrick (~> 1.8)
97+
github-pages-health-check (1.18.2)
98+
addressable (~> 2.3)
99+
dnsruby (~> 1.60)
100+
octokit (>= 4, < 8)
101+
public_suffix (>= 3.0, < 6.0)
102+
typhoeus (~> 1.3)
103+
html-pipeline (2.14.3)
104+
activesupport (>= 2)
105+
nokogiri (>= 1.4)
106+
http_parser.rb (0.8.0)
107+
i18n (1.14.7)
108+
concurrent-ruby (~> 1.0)
109+
jekyll (3.10.0)
110+
addressable (~> 2.4)
111+
colorator (~> 1.0)
112+
csv (~> 3.0)
113+
em-websocket (~> 0.5)
114+
i18n (>= 0.7, < 2)
115+
jekyll-sass-converter (~> 1.0)
116+
jekyll-watch (~> 2.0)
117+
kramdown (>= 1.17, < 3)
118+
liquid (~> 4.0)
119+
mercenary (~> 0.3.3)
120+
pathutil (~> 0.9)
121+
rouge (>= 1.7, < 4)
122+
safe_yaml (~> 1.0)
123+
webrick (>= 1.0)
124+
jekyll-avatar (0.8.0)
125+
jekyll (>= 3.0, < 5.0)
126+
jekyll-coffeescript (1.2.2)
127+
coffee-script (~> 2.2)
128+
coffee-script-source (~> 1.12)
129+
jekyll-commonmark (1.4.0)
130+
commonmarker (~> 0.22)
131+
jekyll-commonmark-ghpages (0.5.1)
132+
commonmarker (>= 0.23.7, < 1.1.0)
133+
jekyll (>= 3.9, < 4.0)
134+
jekyll-commonmark (~> 1.4.0)
135+
rouge (>= 2.0, < 5.0)
136+
jekyll-default-layout (0.1.5)
137+
jekyll (>= 3.0, < 5.0)
138+
jekyll-feed (0.17.0)
139+
jekyll (>= 3.7, < 5.0)
140+
jekyll-gist (1.5.0)
141+
octokit (~> 4.2)
142+
jekyll-github-metadata (2.16.1)
143+
jekyll (>= 3.4, < 5.0)
144+
octokit (>= 4, < 7, != 4.4.0)
145+
jekyll-include-cache (0.2.1)
146+
jekyll (>= 3.7, < 5.0)
147+
jekyll-mentions (1.6.0)
148+
html-pipeline (~> 2.3)
149+
jekyll (>= 3.7, < 5.0)
150+
jekyll-optional-front-matter (0.3.2)
151+
jekyll (>= 3.0, < 5.0)
152+
jekyll-paginate (1.1.0)
153+
jekyll-readme-index (0.3.0)
154+
jekyll (>= 3.0, < 5.0)
155+
jekyll-redirect-from (0.16.0)
156+
jekyll (>= 3.3, < 5.0)
157+
jekyll-relative-links (0.6.1)
158+
jekyll (>= 3.3, < 5.0)
159+
jekyll-remote-theme (0.4.3)
160+
addressable (~> 2.0)
161+
jekyll (>= 3.5, < 5.0)
162+
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
163+
rubyzip (>= 1.3.0, < 3.0)
164+
jekyll-sass-converter (1.5.2)
165+
sass (~> 3.4)
166+
jekyll-seo-tag (2.8.0)
167+
jekyll (>= 3.8, < 5.0)
168+
jekyll-sitemap (1.4.0)
169+
jekyll (>= 3.7, < 5.0)
170+
jekyll-swiss (1.0.0)
171+
jekyll-theme-architect (0.2.0)
172+
jekyll (> 3.5, < 5.0)
173+
jekyll-seo-tag (~> 2.0)
174+
jekyll-theme-cayman (0.2.0)
175+
jekyll (> 3.5, < 5.0)
176+
jekyll-seo-tag (~> 2.0)
177+
jekyll-theme-dinky (0.2.0)
178+
jekyll (> 3.5, < 5.0)
179+
jekyll-seo-tag (~> 2.0)
180+
jekyll-theme-hacker (0.2.0)
181+
jekyll (> 3.5, < 5.0)
182+
jekyll-seo-tag (~> 2.0)
183+
jekyll-theme-leap-day (0.2.0)
184+
jekyll (> 3.5, < 5.0)
185+
jekyll-seo-tag (~> 2.0)
186+
jekyll-theme-merlot (0.2.0)
187+
jekyll (> 3.5, < 5.0)
188+
jekyll-seo-tag (~> 2.0)
189+
jekyll-theme-midnight (0.2.0)
190+
jekyll (> 3.5, < 5.0)
191+
jekyll-seo-tag (~> 2.0)
192+
jekyll-theme-minimal (0.2.0)
193+
jekyll (> 3.5, < 5.0)
194+
jekyll-seo-tag (~> 2.0)
195+
jekyll-theme-modernist (0.2.0)
196+
jekyll (> 3.5, < 5.0)
197+
jekyll-seo-tag (~> 2.0)
198+
jekyll-theme-primer (0.6.0)
199+
jekyll (> 3.5, < 5.0)
200+
jekyll-github-metadata (~> 2.9)
201+
jekyll-seo-tag (~> 2.0)
202+
jekyll-theme-slate (0.2.0)
203+
jekyll (> 3.5, < 5.0)
204+
jekyll-seo-tag (~> 2.0)
205+
jekyll-theme-tactile (0.2.0)
206+
jekyll (> 3.5, < 5.0)
207+
jekyll-seo-tag (~> 2.0)
208+
jekyll-theme-time-machine (0.2.0)
209+
jekyll (> 3.5, < 5.0)
210+
jekyll-seo-tag (~> 2.0)
211+
jekyll-titles-from-headings (0.5.3)
212+
jekyll (>= 3.3, < 5.0)
213+
jekyll-watch (2.2.1)
214+
listen (~> 3.0)
215+
jemoji (0.13.0)
216+
gemoji (>= 3, < 5)
217+
html-pipeline (~> 2.2)
218+
jekyll (>= 3.0, < 5.0)
219+
json (2.13.2)
220+
kramdown (2.4.0)
221+
rexml
222+
kramdown-parser-gfm (1.1.0)
223+
kramdown (~> 2.0)
224+
liquid (4.0.4)
225+
listen (3.9.0)
226+
rb-fsevent (~> 0.10, >= 0.10.3)
227+
rb-inotify (~> 0.9, >= 0.9.10)
228+
logger (1.6.6)
229+
mercenary (0.3.6)
230+
minima (2.5.1)
231+
jekyll (>= 3.5, < 5.0)
232+
jekyll-feed (~> 0.9)
233+
jekyll-seo-tag (~> 2.1)
234+
minitest (5.25.5)
235+
net-http (0.6.0)
236+
uri
237+
nokogiri (1.18.9-x86_64-linux-musl)
238+
racc (~> 1.4)
239+
octokit (4.25.1)
240+
faraday (>= 1, < 3)
241+
sawyer (~> 0.9)
242+
pathutil (0.16.2)
243+
forwardable-extended (~> 2.6)
244+
public_suffix (5.1.1)
245+
racc (1.8.1)
246+
rb-fsevent (0.11.2)
247+
rb-inotify (0.11.1)
248+
ffi (~> 1.0)
249+
rexml (3.4.2)
250+
rouge (3.30.0)
251+
rubyzip (2.4.1)
252+
safe_yaml (1.0.5)
253+
sass (3.7.4)
254+
sass-listen (~> 4.0.0)
255+
sass-listen (4.0.0)
256+
rb-fsevent (~> 0.9, >= 0.9.4)
257+
rb-inotify (~> 0.9, >= 0.9.7)
258+
sawyer (0.9.2)
259+
addressable (>= 2.3.5)
260+
faraday (>= 0.17.3, < 3)
261+
securerandom (0.4.1)
262+
simpleidn (0.2.3)
263+
terminal-table (1.8.0)
264+
unicode-display_width (~> 1.1, >= 1.1.1)
265+
typhoeus (1.5.0)
266+
ethon (>= 0.9.0, < 0.16.0)
267+
tzinfo (2.0.6)
268+
concurrent-ruby (~> 1.0)
269+
unicode-display_width (1.8.0)
270+
uri (1.0.3)
271+
webrick (1.9.1)
272+
273+
PLATFORMS
274+
x86_64-linux-musl
275+
276+
DEPENDENCIES
277+
github-pages
278+
webrick (~> 1.7)
279+
280+
BUNDLED WITH
281+
2.3.25

0 commit comments

Comments
 (0)