Skip to content

Commit 9c45b7c

Browse files
committed
Updated sitebuilder
v1.5.8 ## amd64 jekyll 3.10.0 hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/amd64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio git version 2.39.5 go version go1.25.5 linux/amd64 mkdocs 1.6.1 mkdocs-autorefs 1.4.3 mkdocs-get-deps 0.2.0 mkdocs-git-authors-plugin 0.10.0 mkdocs-git-committers-plugin-2 2.5.0 mkdocs-git-revision-date-localized-plugin 1.5.0 mkdocs-git-revision-date-plugin 0.3.2 mkdocs-glightbox 0.5.2 mkdocs-macros-plugin 1.5.0 mkdocs-material 9.7.1 mkdocs-material-extensions 1.3.1 mkdocs-minify-plugin 0.8.0 mkdocs-redirects 1.2.2 mkdocs-rss-plugin 1.17.7 mkdocstrings 1.0.0 mkdocstrings-python 2.0.1 mkdocstrings-shell 1.0.4 ## arm64 jekyll 3.10.0 hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/arm64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio git version 2.39.5 go version go1.25.5 linux/arm64 mkdocs 1.6.1 mkdocs-autorefs 1.4.3 mkdocs-get-deps 0.2.0 mkdocs-git-authors-plugin 0.10.0 mkdocs-git-committers-plugin-2 2.5.0 mkdocs-git-revision-date-localized-plugin 1.5.0 mkdocs-git-revision-date-plugin 0.3.2 mkdocs-glightbox 0.5.2 mkdocs-macros-plugin 1.5.0 mkdocs-material 9.7.1 mkdocs-material-extensions 1.3.1 mkdocs-minify-plugin 0.8.0 mkdocs-redirects 1.2.2 mkdocs-rss-plugin 1.17.7 mkdocstrings 1.0.0 mkdocstrings-python 2.0.1 mkdocstrings-shell 1.0.4 Signed-off-by: Samir B Amin <sbamin@alumni.bcm.edu>
1 parent b12a74c commit 9c45b7c

4 files changed

Lines changed: 101 additions & 88 deletions

File tree

Dockerfile

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
############################################################
22
# Dockerfile for website build using jekyll, hugo, or mkdocs
33
############################################################
4-
## ruby version should be compliant with netlify and github-pages
5-
## managed build nodes, https://pages.github.com/versions/
4+
## ruby version should be compliant with github-pages
5+
## managed build nodes, https://pages.github.com/versions/ or
6+
## Dockerfile at https://github.com/github/pages-gem
67
FROM ruby:3.3.7
78

89
## pull docker buildx platform arg
910
ARG TARGETPLATFORM
1011

1112
## NOTE: installing beta version of mkdocs-material with blog support.
12-
LABEL version="1.5.7" \
13-
mode="sitebuilder-1.5.7" \
14-
author="Samirkumar Amin; tweet:sbamin; sbamin.com/contact" \
13+
LABEL version="1.5.8" \
14+
mode="sitebuilder-1.5.8" \
15+
author="Samirkumar Amin" \
1516
description="docker image to build jekyll, hugo or mkdocs supported website" \
1617
website="https://github.com/sbamin/sitebuilder" \
1718
LICENSE="MIT License, https://github.com/sbamin/sitebuilder/blob/master/LICENSE" \
@@ -37,8 +38,9 @@ RUN apt-get update && \
3738
ENV LC_ALL="C.UTF-8"
3839
ENV LANG="en_US.UTF-8"
3940
ENV LANGUAGE="en_US.UTF-8"
40-
ENV myhugo="0.145.0"
41-
ENV mygo="1.24.1"
41+
ENV myhugo="0.153.2"
42+
ENV mygo="1.25.5"
43+
ENV mydartsass="1.97.1"
4244

4345
#### Python 3 venv ####
4446
# Create and activate a Python virtual environment
@@ -85,8 +87,8 @@ RUN rm -rf /var/lib/apt/lists/partial && \
8587
## install latest hugo extended, including GO
8688
## requires OS arch variable
8789
RUN case "$TARGETPLATFORM" in \
88-
"linux/amd64") ARCH="amd64" ;; \
89-
"linux/arm64") ARCH="arm64" ;; \
90+
"linux/amd64") ARCH="amd64"; ARCH2="x64" ;; \
91+
"linux/arm64") ARCH="arm64"; ARCH2="arm64" ;; \
9092
*) echo "Unsupported architecture: $TARGETPLATFORM" && exit 1 ;; \
9193
esac && \
9294
echo "Building for ARCH=$ARCH" && \
@@ -98,8 +100,14 @@ RUN case "$TARGETPLATFORM" in \
98100
mkdir -p /opt/go/bin && \
99101
chmod 775 /opt/go && \
100102
chmod 775 /opt/go/bin && \
103+
wget https://github.com/sass/dart-sass/releases/download/${mydartsass}/dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
104+
mkdir -p /opt/dart && \
105+
chmod 775 /opt/dart && \
106+
tar -C /opt/dart -xvzf dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
107+
mv -f /opt/dart/dart-sass /opt/dart/bin && \
101108
apt-get clean && \
102109
rm -f go${mygo}.linux-${ARCH}.tar.gz && \
110+
rm -f dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
103111
rm -rf /var/lib/apt/lists/*
104112

105113
ENV GOPATH="/opt/go"
@@ -111,7 +119,7 @@ WORKDIR /web
111119
## for mkdocstrings, set an intended path to python modules
112120
ENV PYTHONPATH="/web/api/py"
113121

114-
ENV PATH="/opt/venv/bin:/usr/local/bundle/bin:/usr/local/bundle/gems/bin:/usr/local/go/bin:/opt/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
122+
ENV PATH="/opt/venv/bin:/usr/local/bundle/bin:/usr/local/bundle/gems/bin:/usr/local/go/bin:/opt/go/bin:/opt/dart/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
115123

116124
#### expose ports for jekyll, mkdocs, and hugo serve command ####
117125
EXPOSE 4000

Gemfile.lock

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,58 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activesupport (8.0.2)
4+
activesupport (8.1.1)
55
base64
6-
benchmark (>= 0.3)
76
bigdecimal
87
concurrent-ruby (~> 1.0, >= 1.3.1)
98
connection_pool (>= 2.2.5)
109
drb
1110
i18n (>= 1.6, < 2)
11+
json
1212
logger (>= 1.4.2)
1313
minitest (>= 5.1)
1414
securerandom (>= 0.3)
1515
tzinfo (~> 2.0, >= 2.0.5)
1616
uri (>= 0.13.1)
17-
addressable (2.8.7)
18-
public_suffix (>= 2.0.2, < 7.0)
19-
base64 (0.2.0)
20-
benchmark (0.4.0)
21-
bigdecimal (3.1.9)
17+
addressable (2.8.8)
18+
public_suffix (>= 2.0.2, < 8.0)
19+
base64 (0.3.0)
20+
bigdecimal (4.0.1)
2221
coffee-script (2.4.1)
2322
coffee-script-source
2423
execjs
2524
coffee-script-source (1.12.2)
2625
colorator (1.1.0)
27-
commonmarker (0.23.11)
28-
concurrent-ruby (1.3.5)
29-
connection_pool (2.5.0)
30-
csv (3.3.3)
31-
dnsruby (1.72.4)
32-
base64 (~> 0.2.0)
33-
logger (~> 1.6.5)
26+
commonmarker (0.23.12)
27+
concurrent-ruby (1.3.6)
28+
connection_pool (3.0.2)
29+
csv (3.3.5)
30+
dnsruby (1.73.1)
31+
base64 (>= 0.2)
32+
logger (~> 1.6)
3433
simpleidn (~> 0.2.1)
35-
drb (2.2.1)
34+
drb (2.2.3)
3635
em-websocket (0.5.3)
3736
eventmachine (>= 0.12.9)
3837
http_parser.rb (~> 0)
39-
ethon (0.16.0)
38+
ethon (0.15.0)
4039
ffi (>= 1.15.0)
4140
eventmachine (1.2.7)
4241
execjs (2.10.0)
43-
faraday (2.12.2)
42+
faraday (2.14.0)
4443
faraday-net_http (>= 2.0, < 3.5)
4544
json
4645
logger
47-
faraday-net_http (3.4.0)
48-
net-http (>= 0.5.0)
49-
ffi (1.17.1-aarch64-linux-gnu)
50-
ffi (1.17.1-aarch64-linux-musl)
51-
ffi (1.17.1-arm-linux-gnu)
52-
ffi (1.17.1-arm-linux-musl)
53-
ffi (1.17.1-arm64-darwin)
54-
ffi (1.17.1-x86_64-darwin)
55-
ffi (1.17.1-x86_64-linux-gnu)
56-
ffi (1.17.1-x86_64-linux-musl)
46+
faraday-net_http (3.4.2)
47+
net-http (~> 0.5)
48+
ffi (1.17.2-aarch64-linux-gnu)
49+
ffi (1.17.2-aarch64-linux-musl)
50+
ffi (1.17.2-arm-linux-gnu)
51+
ffi (1.17.2-arm-linux-musl)
52+
ffi (1.17.2-arm64-darwin)
53+
ffi (1.17.2-x86_64-darwin)
54+
ffi (1.17.2-x86_64-linux-gnu)
55+
ffi (1.17.2-x86_64-linux-musl)
5756
forwardable-extended (2.6.0)
5857
gemoji (4.1.0)
5958
github-pages (232)
@@ -111,8 +110,8 @@ GEM
111110
html-pipeline (2.14.3)
112111
activesupport (>= 2)
113112
nokogiri (>= 1.4)
114-
http_parser.rb (0.8.0)
115-
i18n (1.14.7)
113+
http_parser.rb (0.8.1)
114+
i18n (1.14.8)
116115
concurrent-ruby (~> 1.0)
117116
jekyll (3.10.0)
118117
addressable (~> 2.4)
@@ -225,7 +224,7 @@ GEM
225224
gemoji (>= 3, < 5)
226225
html-pipeline (~> 2.2)
227226
jekyll (>= 3.0, < 5.0)
228-
json (2.10.2)
227+
json (2.18.0)
229228
kramdown (2.4.0)
230229
rexml
231230
kramdown-parser-gfm (1.1.0)
@@ -234,42 +233,44 @@ GEM
234233
listen (3.9.0)
235234
rb-fsevent (~> 0.10, >= 0.10.3)
236235
rb-inotify (~> 0.9, >= 0.9.10)
237-
logger (1.6.6)
236+
logger (1.7.0)
238237
mercenary (0.3.6)
239238
minima (2.5.1)
240239
jekyll (>= 3.5, < 5.0)
241240
jekyll-feed (~> 0.9)
242241
jekyll-seo-tag (~> 2.1)
243-
minitest (5.25.5)
244-
net-http (0.6.0)
245-
uri
246-
nokogiri (1.18.6-aarch64-linux-gnu)
242+
minitest (6.0.0)
243+
prism (~> 1.5)
244+
net-http (0.9.1)
245+
uri (>= 0.11.1)
246+
nokogiri (1.18.10-aarch64-linux-gnu)
247247
racc (~> 1.4)
248-
nokogiri (1.18.6-aarch64-linux-musl)
248+
nokogiri (1.18.10-aarch64-linux-musl)
249249
racc (~> 1.4)
250-
nokogiri (1.18.6-arm-linux-gnu)
250+
nokogiri (1.18.10-arm-linux-gnu)
251251
racc (~> 1.4)
252-
nokogiri (1.18.6-arm-linux-musl)
252+
nokogiri (1.18.10-arm-linux-musl)
253253
racc (~> 1.4)
254-
nokogiri (1.18.6-arm64-darwin)
254+
nokogiri (1.18.10-arm64-darwin)
255255
racc (~> 1.4)
256-
nokogiri (1.18.6-x86_64-darwin)
256+
nokogiri (1.18.10-x86_64-darwin)
257257
racc (~> 1.4)
258-
nokogiri (1.18.6-x86_64-linux-gnu)
258+
nokogiri (1.18.10-x86_64-linux-gnu)
259259
racc (~> 1.4)
260-
nokogiri (1.18.6-x86_64-linux-musl)
260+
nokogiri (1.18.10-x86_64-linux-musl)
261261
racc (~> 1.4)
262262
octokit (4.25.1)
263263
faraday (>= 1, < 3)
264264
sawyer (~> 0.9)
265265
pathutil (0.16.2)
266266
forwardable-extended (~> 2.6)
267+
prism (1.7.0)
267268
public_suffix (5.1.1)
268269
racc (1.8.1)
269270
rb-fsevent (0.11.2)
270271
rb-inotify (0.11.1)
271272
ffi (~> 1.0)
272-
rexml (3.4.1)
273+
rexml (3.4.4)
273274
rouge (3.30.0)
274275
rubyzip (2.4.1)
275276
safe_yaml (1.0.5)
@@ -278,20 +279,20 @@ GEM
278279
sass-listen (4.0.0)
279280
rb-fsevent (~> 0.9, >= 0.9.4)
280281
rb-inotify (~> 0.9, >= 0.9.7)
281-
sawyer (0.9.2)
282+
sawyer (0.9.3)
282283
addressable (>= 2.3.5)
283284
faraday (>= 0.17.3, < 3)
284285
securerandom (0.4.1)
285286
simpleidn (0.2.3)
286287
terminal-table (1.8.0)
287288
unicode-display_width (~> 1.1, >= 1.1.1)
288-
typhoeus (1.4.1)
289-
ethon (>= 0.9.0)
289+
typhoeus (1.5.0)
290+
ethon (>= 0.9.0, < 0.16.0)
290291
tzinfo (2.0.6)
291292
concurrent-ruby (~> 1.0)
292293
unicode-display_width (1.8.0)
293-
uri (1.0.3)
294-
webrick (1.9.1)
294+
uri (1.1.1)
295+
webrick (1.9.2)
295296

296297
PLATFORMS
297298
aarch64-linux-gnu

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ For MkDocs, docker image is using [mkdocs-material](https://squidfunk.github.io/
2525
docker run -v "$(pwd):/web" --rm -P -p 127.0.0.1:4000:4000 sbamin/sitebuilder mkdocs serve -a 0.0.0.0:4000
2626

2727
## jekyll, preview at http://0.0.0.0:4000
28+
## PS: For jekyll serve, --no-watch may be needed on apple silicon
29+
## with an open issue with rb-notify gem.
2830
docker run -v "$(pwd):/web" --rm -P -p 127.0.0.1:4000:4000 sbamin/sitebuilder jekyll serve --watch --host=0.0.0.0 -c _devconfig.yml -d _sitelocal
2931

3032
## hugo, preview at http://0.0.0.0:4000

update_sitebuilder.md

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ git status
1717
1818
### Update packages
1919

20-
* Define docker image tag, e.g., `1.5.6` typically a level up than [the current version](https://hub.docker.com/r/sbamin/sitebuilder/tags). You need to manually update several of commands below to reflect an updated tag.
20+
* Define docker image tag, e.g., `1.5.8` typically a level up than [the current version](https://hub.docker.com/r/sbamin/sitebuilder/tags). You need to manually update several of commands below to reflect an updated tag.
2121

22-
* Update `Dockerfile` as per your custom changes. At minimum, update LABEL version and mode to reflect an updated tag. You can also update `hugo extended` to the [current release](https://github.com/gohugoio/hugo/releases) by updating *myhugo* ENV variable in `Dockerfile`. Optionally, [update related go version](https://go.dev/dl/) with *mygo* ENV variable.
22+
* Update `Dockerfile` as per your custom changes. At minimum, update LABEL version and mode to reflect an updated tag. You can also update `hugo extended` to the [current release](https://github.com/gohugoio/hugo/releases) by updating *myhugo* ENV variable in `Dockerfile`. Optionally, [update related go version](https://go.dev/dl/) with *mygo* ENV variable and [dart-sass](https://github.com/sass/dart-sass/releases) with *mydartsass* variable. Change installation commands for prebuilt go and dart-sass binaries as and when required.
2323

2424
* If you need to update [jekyll](https://jekyllrb.com/) related gems, update `Gemfile` while ensuring gem [version requirements](https://pages.github.com/versions/) for [github-pages](https://github.com/github/pages-gem) gem.
2525

@@ -39,20 +39,22 @@ Here, I am using `docker buildx build` from [Docker Desktop v4.22.0 on mac os 15
3939
## replace --push with --load to load arch specific image locally
4040
docker buildx build \
4141
--platform linux/arm64/v8,linux/amd64 \
42-
--tag sbamin/sitebuilder:1.5.7 \
42+
--tag sbamin/sitebuilder:1.5.8 \
4343
--tag sbamin/sitebuilder:latest \
4444
--push \
4545
--file Dockerfile .
4646
```
4747

48+
Check [docker hub: sbamin/sitebuilder](https://hub.docker.com/r/sbamin/sitebuilder/tags) and should show an updated tag. If so, update local image using `docker images` and then `docker pull sbamin/sitebuilder` to get a latest tag.
49+
4850
### update Gemfile.lock
4951

5052
* Once image is successfully built, copy `Gemfile.lock` back to host, so that we can update it with the most recent versions of gems.
5153

5254
```sh
5355
## start container in an interactive session and mount local (host) directory
5456
## to an empty location in the docker container.
55-
docker run --rm -it -v "$(pwd)":/hostspace sbamin/sitebuilder:1.5.7 /bin/bash
57+
docker run --rm -it -v "$(pwd)":/hostspace sbamin/sitebuilder /bin/bash
5658

5759
## copy (overwrite) local Gemfile.lock with an updated version from
5860
## the container
@@ -75,61 +77,61 @@ docker run --platform linux/amd64 --rm sbamin/sitebuilder /bin/bash -c "jekyll -
7577
### Update github releases
7678

7779
```sh
78-
git add Dockerfile Dockerfile_arm64 Gemfile Gemfile.lock update_sitebuilder.md README.md
80+
git add Dockerfile Gemfile Gemfile.lock update_sitebuilder.md README.md
7981

8082
## write a multiline git commit message
8183
## -s requires a valid gpg key for signing a message
8284
git commit -s -F- <<EOF
8385
Updated sitebuilder
84-
v1.5.7
86+
v1.5.8
8587
8688
## amd64
8789
8890
jekyll 3.10.0
89-
hugo v0.145.0-666444f0a52132f9fec9f71cf25b441cc6a4f355+extended linux/amd64 BuildDate=2025-02-26T15:41:25Z VendorInfo=gohugoio
91+
hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/amd64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio
9092
git version 2.39.5
91-
go version go1.24.1 linux/amd64
93+
go version go1.25.5 linux/amd64
9294
mkdocs 1.6.1
93-
mkdocs-autorefs 1.4.1
95+
mkdocs-autorefs 1.4.3
9496
mkdocs-get-deps 0.2.0
95-
mkdocs-git-authors-plugin 0.9.4
97+
mkdocs-git-authors-plugin 0.10.0
9698
mkdocs-git-committers-plugin-2 2.5.0
97-
mkdocs-git-revision-date-localized-plugin 1.4.5
99+
mkdocs-git-revision-date-localized-plugin 1.5.0
98100
mkdocs-git-revision-date-plugin 0.3.2
99-
mkdocs-glightbox 0.4.0
100-
mkdocs-macros-plugin 1.3.7
101-
mkdocs-material 9.6.9
101+
mkdocs-glightbox 0.5.2
102+
mkdocs-macros-plugin 1.5.0
103+
mkdocs-material 9.7.1
102104
mkdocs-material-extensions 1.3.1
103105
mkdocs-minify-plugin 0.8.0
104106
mkdocs-redirects 1.2.2
105-
mkdocs-rss-plugin 1.17.1
106-
mkdocstrings 0.29.0
107-
mkdocstrings-python 1.16.8
108-
mkdocstrings-shell 1.0.1
107+
mkdocs-rss-plugin 1.17.7
108+
mkdocstrings 1.0.0
109+
mkdocstrings-python 2.0.1
110+
mkdocstrings-shell 1.0.4
109111
110112
## arm64
111113
112114
jekyll 3.10.0
113-
hugo v0.145.0-666444f0a52132f9fec9f71cf25b441cc6a4f355+extended linux/arm64 BuildDate=2025-02-26T15:41:25Z VendorInfo=gohugoio
115+
hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/arm64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio
114116
git version 2.39.5
115-
go version go1.24.1 linux/arm64
117+
go version go1.25.5 linux/arm64
116118
mkdocs 1.6.1
117-
mkdocs-autorefs 1.4.1
119+
mkdocs-autorefs 1.4.3
118120
mkdocs-get-deps 0.2.0
119-
mkdocs-git-authors-plugin 0.9.4
121+
mkdocs-git-authors-plugin 0.10.0
120122
mkdocs-git-committers-plugin-2 2.5.0
121-
mkdocs-git-revision-date-localized-plugin 1.4.5
123+
mkdocs-git-revision-date-localized-plugin 1.5.0
122124
mkdocs-git-revision-date-plugin 0.3.2
123-
mkdocs-glightbox 0.4.0
124-
mkdocs-macros-plugin 1.3.7
125-
mkdocs-material 9.6.9
125+
mkdocs-glightbox 0.5.2
126+
mkdocs-macros-plugin 1.5.0
127+
mkdocs-material 9.7.1
126128
mkdocs-material-extensions 1.3.1
127129
mkdocs-minify-plugin 0.8.0
128130
mkdocs-redirects 1.2.2
129-
mkdocs-rss-plugin 1.17.1
130-
mkdocstrings 0.29.0
131-
mkdocstrings-python 1.16.8
132-
mkdocstrings-shell 1.0.1
131+
mkdocs-rss-plugin 1.17.7
132+
mkdocstrings 1.0.0
133+
mkdocstrings-python 2.0.1
134+
mkdocstrings-shell 1.0.4
133135
134136
EOF
135137

0 commit comments

Comments
 (0)