Skip to content

Commit ec59ac5

Browse files
committed
Updated sitebuilder
v1.5.9 - ✨ added pagefind search - 🙅‍♂️ mkquartodocs plugin is not functional - prefer running quarto docs locally and copy generated md or html to sitebuilder ## amd64 jekyll 3.10.0 hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/amd64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio git version 2.39.5 go version go1.26.0 linux/amd64 mkdocs 1.6.1 mkdocs-autorefs 1.4.4 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.1 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.9 mkdocstrings 1.0.3 mkdocstrings-python 2.0.2 mkdocstrings-shell 1.0.4 mkquartodocs 0.7.0 pagefind 1.5.0-beta.1 Ruby Sass 3.7.4 ## arm64 jekyll 3.10.0 hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/arm64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio git version 2.39.5 go version go1.26.0 linux/arm64 mkdocs 1.6.1 mkdocs-autorefs 1.4.4 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.1 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.9 mkdocstrings 1.0.3 mkdocstrings-python 2.0.2 mkdocstrings-shell 1.0.4 mkquartodocs 0.7.0 pagefind 1.5.0-beta.1 Ruby Sass 3.7.4 Signed-off-by: Samir B Amin <sbamin@alumni.bcm.edu>
1 parent 9d03633 commit ec59ac5

3 files changed

Lines changed: 96 additions & 79 deletions

File tree

Dockerfile

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,26 @@ LABEL version="1.5.9" \
2222
## https://stackoverflow.com/a/56569081/1243763
2323
ARG DEBIAN_FRONTEND=noninteractive
2424

25-
#### Configure locales ####
25+
#### Configure locales, python3, git (via PPA) ####
2626
## https://github.com/jekyll/jekyll/issues/4268
2727
RUN apt-get update && \
28-
apt-get install -y locales python3 python3-venv python3-distutils && \
29-
apt-get install -y software-properties-common && \
28+
apt-get install -y --no-install-recommends \
29+
locales \
30+
python3 \
31+
python3-venv \
32+
python3-distutils \
33+
python3-launchpadlib \
34+
software-properties-common && \
35+
add-apt-repository ppa:git-core/ppa && \
36+
apt-get update && \
37+
apt-get install -y --no-install-recommends git && \
3038
dpkg-reconfigure --frontend noninteractive locales && \
3139
locale-gen C.UTF-8 && \
3240
/usr/sbin/update-locale LANG=C.UTF-8 && \
3341
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
3442
locale-gen && \
35-
apt-get clean
43+
apt-get clean && \
44+
rm -rf /var/lib/apt/lists/*
3645

3746
## Set default locale
3847
ENV LC_ALL="C.UTF-8"
@@ -46,7 +55,7 @@ ENV mypagefind="v1.5.0-beta.1"
4655
#### Python 3 venv ####
4756
# Create and activate a Python virtual environment
4857
RUN python3 -m venv /opt/venv && \
49-
/opt/venv/bin/pip install --upgrade pip setuptools wheel
58+
/opt/venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel
5059

5160
ENV PATH="/opt/venv/bin:$PATH"
5261

@@ -62,52 +71,49 @@ RUN mkdir -p /scratch && \
6271
bundle install && \
6372
mkdir -p /web
6473

65-
## git
66-
RUN apt-get install -y python3-launchpadlib && \
67-
add-apt-repository ppa:git-core/ppa && \
68-
apt-get update && \
69-
apt-get install -y python3-launchpadlib git && \
70-
git --version
71-
72-
#### MkDocs, mkdocs-material, hugo ####
74+
#### MkDocs, mkdocs-material, and plugins ####
7375
## https://github.com/squidfunk/mkdocs-material
74-
## issue with Hash Sum mismatch
75-
RUN rm -rf /var/lib/apt/lists/partial && \
76-
apt-get update -o Acquire::CompressionTypes::Order::=gz && \
77-
pip3 install --upgrade singledispatch nltk six && \
78-
## force update packages if failed earlier
79-
pip3 install --upgrade singledispatch nltk six && \
80-
pip3 install markdown pygments fontawesome_markdown pymdown-extensions && \
81-
pip3 install "mkdocs-material[imaging,recommended,git]" && \
82-
pip3 install mkdocs mkdocs-material mkdocs-git-revision-date-plugin mkdocs-git-revision-date-localized-plugin mkdocs-minify-plugin mkdocs-redirects pymdown-extensions mkdocs-macros-plugin mike mkdocs-git-authors-plugin mkdocs-glightbox mkdocstrings mkdocstrings-python mkdocstrings-shell mkquartodocs && \
83-
## force update mkdocs env
84-
pip3 install --upgrade "mkdocs-material[imaging,recommended,git]" && \
85-
pip3 install --upgrade markdown pygments fontawesome_markdown pymdown-extensions && \
86-
pip3 install --upgrade mkdocs mkdocs-material mkdocs-git-revision-date-plugin mkdocs-git-revision-date-localized-plugin mkdocs-minify-plugin mkdocs-redirects pymdown-extensions mkdocs-macros-plugin mike mkdocs-git-authors-plugin mkdocs-glightbox mkdocstrings mkdocstrings-python mkdocstrings-shell mkquartodocs && \
87-
git config --global --add safe.directory /web && \
88-
## install latest hugo extended, including GO, dart-sass, and pagefind
89-
case "$TARGETPLATFORM" in \
76+
RUN pip3 install --no-cache-dir \
77+
singledispatch nltk six \
78+
markdown pygments fontawesome_markdown pymdown-extensions \
79+
"mkdocs-material[imaging,recommended,git]" \
80+
mkdocs mkdocs-material \
81+
mkdocs-git-revision-date-plugin \
82+
mkdocs-git-revision-date-localized-plugin \
83+
mkdocs-minify-plugin \
84+
mkdocs-redirects \
85+
mkdocs-macros-plugin \
86+
mike \
87+
mkdocs-git-authors-plugin \
88+
mkdocs-glightbox \
89+
mkdocstrings mkdocstrings-python mkdocstrings-shell \
90+
mkquartodocs && \
91+
git config --global --add safe.directory /web
92+
93+
## install latest hugo extended, including GO, dart-sass, and pagefind
94+
## requires OS arch variable
95+
RUN case "$TARGETPLATFORM" in \
9096
"linux/amd64") ARCH="amd64"; ARCH2="x64"; ARCH3="x86_64" ;; \
9197
"linux/arm64") ARCH="arm64"; ARCH2="arm64"; ARCH3="aarch64" ;; \
9298
*) echo "Unsupported architecture: $TARGETPLATFORM" && exit 1 ;; \
9399
esac && \
94100
echo "Building for ARCH=$ARCH" && \
95-
wget https://github.com/gohugoio/hugo/releases/download/v${myhugo}/hugo_extended_${myhugo}_linux-${ARCH}.deb && \
101+
wget -q https://github.com/gohugoio/hugo/releases/download/v${myhugo}/hugo_extended_${myhugo}_linux-${ARCH}.deb && \
96102
apt install ./hugo_extended_${myhugo}_linux-${ARCH}.deb -y && \
97103
rm -f hugo_extended_${myhugo}_linux-${ARCH}.deb && \
98-
wget https://go.dev/dl/go${mygo}.linux-${ARCH}.tar.gz && \
99-
tar -C /usr/local -xvzf go${mygo}.linux-${ARCH}.tar.gz && \
104+
wget -q https://go.dev/dl/go${mygo}.linux-${ARCH}.tar.gz && \
105+
tar -C /usr/local -xzf go${mygo}.linux-${ARCH}.tar.gz && \
100106
mkdir -p /opt/go/bin && \
101107
chmod 775 /opt/go && \
102108
chmod 775 /opt/go/bin && \
103-
wget https://github.com/sass/dart-sass/releases/download/${mydartsass}/dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
109+
wget -q https://github.com/sass/dart-sass/releases/download/${mydartsass}/dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
104110
mkdir -p /opt/dart && \
105111
chmod 775 /opt/dart && \
106-
tar -C /opt/dart -xvzf dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
112+
tar -C /opt/dart -xzf dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \
107113
mv -f /opt/dart/dart-sass /opt/dart/bin && \
108-
## install pagefid
109-
cd /usr/local/bin && \
110-
curl -sL https://github.com/Pagefind/pagefind/releases/download/${mypagefind}/pagefind-${mypagefind}-${ARCH3}-unknown-linux-musl.tar.gz | tar xz && chmod 755 pagefind && \
114+
## install pagefind
115+
curl -sL https://github.com/Pagefind/pagefind/releases/download/${mypagefind}/pagefind-${mypagefind}-${ARCH3}-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin && \
116+
chmod 755 /usr/local/bin/pagefind && \
111117
apt-get clean && \
112118
rm -f go${mygo}.linux-${ARCH}.tar.gz && \
113119
rm -f dart-sass-${mydartsass}-linux-${ARCH2}-musl.tar.gz && \

Gemfile.lock

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activesupport (8.1.1)
4+
activesupport (8.1.2)
55
base64
66
bigdecimal
77
concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -39,20 +39,20 @@ GEM
3939
ffi (>= 1.15.0)
4040
eventmachine (1.2.7)
4141
execjs (2.10.0)
42-
faraday (2.14.0)
42+
faraday (2.14.1)
4343
faraday-net_http (>= 2.0, < 3.5)
4444
json
4545
logger
4646
faraday-net_http (3.4.2)
4747
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)
48+
ffi (1.17.3-aarch64-linux-gnu)
49+
ffi (1.17.3-aarch64-linux-musl)
50+
ffi (1.17.3-arm-linux-gnu)
51+
ffi (1.17.3-arm-linux-musl)
52+
ffi (1.17.3-arm64-darwin)
53+
ffi (1.17.3-x86_64-darwin)
54+
ffi (1.17.3-x86_64-linux-gnu)
55+
ffi (1.17.3-x86_64-linux-musl)
5656
forwardable-extended (2.6.0)
5757
gemoji (4.1.0)
5858
github-pages (232)
@@ -224,13 +224,14 @@ GEM
224224
gemoji (>= 3, < 5)
225225
html-pipeline (~> 2.2)
226226
jekyll (>= 3.0, < 5.0)
227-
json (2.18.0)
227+
json (2.18.1)
228228
kramdown (2.4.0)
229229
rexml
230230
kramdown-parser-gfm (1.1.0)
231231
kramdown (~> 2.0)
232232
liquid (4.0.4)
233-
listen (3.9.0)
233+
listen (3.10.0)
234+
logger
234235
rb-fsevent (~> 0.10, >= 0.10.3)
235236
rb-inotify (~> 0.9, >= 0.9.10)
236237
logger (1.7.0)
@@ -239,32 +240,32 @@ GEM
239240
jekyll (>= 3.5, < 5.0)
240241
jekyll-feed (~> 0.9)
241242
jekyll-seo-tag (~> 2.1)
242-
minitest (6.0.0)
243+
minitest (6.0.1)
243244
prism (~> 1.5)
244245
net-http (0.9.1)
245246
uri (>= 0.11.1)
246-
nokogiri (1.18.10-aarch64-linux-gnu)
247+
nokogiri (1.19.0-aarch64-linux-gnu)
247248
racc (~> 1.4)
248-
nokogiri (1.18.10-aarch64-linux-musl)
249+
nokogiri (1.19.0-aarch64-linux-musl)
249250
racc (~> 1.4)
250-
nokogiri (1.18.10-arm-linux-gnu)
251+
nokogiri (1.19.0-arm-linux-gnu)
251252
racc (~> 1.4)
252-
nokogiri (1.18.10-arm-linux-musl)
253+
nokogiri (1.19.0-arm-linux-musl)
253254
racc (~> 1.4)
254-
nokogiri (1.18.10-arm64-darwin)
255+
nokogiri (1.19.0-arm64-darwin)
255256
racc (~> 1.4)
256-
nokogiri (1.18.10-x86_64-darwin)
257+
nokogiri (1.19.0-x86_64-darwin)
257258
racc (~> 1.4)
258-
nokogiri (1.18.10-x86_64-linux-gnu)
259+
nokogiri (1.19.0-x86_64-linux-gnu)
259260
racc (~> 1.4)
260-
nokogiri (1.18.10-x86_64-linux-musl)
261+
nokogiri (1.19.0-x86_64-linux-musl)
261262
racc (~> 1.4)
262263
octokit (4.25.1)
263264
faraday (>= 1, < 3)
264265
sawyer (~> 0.9)
265266
pathutil (0.16.2)
266267
forwardable-extended (~> 2.6)
267-
prism (1.7.0)
268+
prism (1.9.0)
268269
public_suffix (5.1.1)
269270
racc (1.8.1)
270271
rb-fsevent (0.11.2)

update_sitebuilder.md

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ 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.8 \
42+
--tag sbamin/sitebuilder:1.5.9 \
4343
--tag sbamin/sitebuilder:latest \
4444
--push \
4545
--file Dockerfile .
@@ -68,10 +68,10 @@ exit
6868

6969
```sh
7070
## we already pushed both, updated version and latest tag to docker
71-
docker run --rm sbamin/sitebuilder /bin/bash -c "jekyll --version && hugo version && git version && go version && pip list | grep mkdocs"
71+
docker run --rm sbamin/sitebuilder /bin/bash -c "jekyll --version && hugo version && git version && go version && pip list | grep -E 'mkdocs|quarto' && pagefind --version && sass --version"
7272

7373
## for non-os compliant OS, e.g., amd64 if using macos M2
74-
docker run --platform linux/amd64 --rm sbamin/sitebuilder /bin/bash -c "jekyll --version && hugo version && git version && go version && pip list | grep mkdocs"
74+
docker run --platform linux/amd64 --rm sbamin/sitebuilder /bin/bash -c "jekyll --version && hugo version && git version && go version && pip list | grep -E 'mkdocs|quarto' && pagefind --version && sass --version"
7575
```
7676

7777
### Update github releases
@@ -83,55 +83,65 @@ git add Dockerfile Gemfile Gemfile.lock update_sitebuilder.md README.md
8383
## -s requires a valid gpg key for signing a message
8484
git commit -s -F- <<EOF
8585
Updated sitebuilder
86-
v1.5.8
86+
v1.5.9
87+
88+
- ✨ added pagefind search
89+
- 🙅‍♂️ mkquartodocs plugin is not functional
90+
- prefer running quarto docs locally and copy generated md or html to sitebuilder
8791
8892
## amd64
8993
9094
jekyll 3.10.0
91-
hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/amd64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio
95+
hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/amd64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio
9296
git version 2.39.5
93-
go version go1.25.5 linux/amd64
97+
go version go1.26.0 linux/amd64
9498
mkdocs 1.6.1
95-
mkdocs-autorefs 1.4.3
99+
mkdocs-autorefs 1.4.4
96100
mkdocs-get-deps 0.2.0
97101
mkdocs-git-authors-plugin 0.10.0
98102
mkdocs-git-committers-plugin-2 2.5.0
99-
mkdocs-git-revision-date-localized-plugin 1.5.0
103+
mkdocs-git-revision-date-localized-plugin 1.5.1
100104
mkdocs-git-revision-date-plugin 0.3.2
101105
mkdocs-glightbox 0.5.2
102106
mkdocs-macros-plugin 1.5.0
103107
mkdocs-material 9.7.1
104108
mkdocs-material-extensions 1.3.1
105109
mkdocs-minify-plugin 0.8.0
106110
mkdocs-redirects 1.2.2
107-
mkdocs-rss-plugin 1.17.7
108-
mkdocstrings 1.0.0
109-
mkdocstrings-python 2.0.1
111+
mkdocs-rss-plugin 1.17.9
112+
mkdocstrings 1.0.3
113+
mkdocstrings-python 2.0.2
110114
mkdocstrings-shell 1.0.4
115+
mkquartodocs 0.7.0
116+
pagefind 1.5.0-beta.1
117+
Ruby Sass 3.7.4
111118
112119
## arm64
113120
114121
jekyll 3.10.0
115-
hugo v0.153.2-798533a2013eab97198b0a155a8f4afab7e79865+extended linux/arm64 BuildDate=2025-12-22T16:53:01Z VendorInfo=gohugoio
122+
hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/arm64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio
116123
git version 2.39.5
117-
go version go1.25.5 linux/arm64
124+
go version go1.26.0 linux/arm64
118125
mkdocs 1.6.1
119-
mkdocs-autorefs 1.4.3
126+
mkdocs-autorefs 1.4.4
120127
mkdocs-get-deps 0.2.0
121128
mkdocs-git-authors-plugin 0.10.0
122129
mkdocs-git-committers-plugin-2 2.5.0
123-
mkdocs-git-revision-date-localized-plugin 1.5.0
130+
mkdocs-git-revision-date-localized-plugin 1.5.1
124131
mkdocs-git-revision-date-plugin 0.3.2
125132
mkdocs-glightbox 0.5.2
126133
mkdocs-macros-plugin 1.5.0
127134
mkdocs-material 9.7.1
128135
mkdocs-material-extensions 1.3.1
129136
mkdocs-minify-plugin 0.8.0
130137
mkdocs-redirects 1.2.2
131-
mkdocs-rss-plugin 1.17.7
132-
mkdocstrings 1.0.0
133-
mkdocstrings-python 2.0.1
138+
mkdocs-rss-plugin 1.17.9
139+
mkdocstrings 1.0.3
140+
mkdocstrings-python 2.0.2
134141
mkdocstrings-shell 1.0.4
142+
mkquartodocs 0.7.0
143+
pagefind 1.5.0-beta.1
144+
Ruby Sass 3.7.4
135145
136146
EOF
137147

@@ -142,9 +152,9 @@ git push
142152

143153
With buildx command and `--push` argument above, we already have uploaded images to docker hub, include `latest` alias.
144154

145-
* Confirm using `docker images` that IMAGE ID of a built image, `sbamin/sitebuilder:1.5.x` matches with aliases created above. If all good, remove previous version of sitebuilder, `docker rmi sbamin/sitebuilder:1.5.4`
155+
* Confirm using `docker images` that IMAGE ID of a built image, `sbamin/sitebuilder:1.5.x` matches with aliases created above. If all good, remove previous version of sitebuilder, `docker rmi sbamin/sitebuilder:1.5.*`
146156

147-
Besides updating Docker Hub, if you are updating image also to github packages, update respective aliases. **I have stopped updating github container repo past v[1.5.6](https://github.com/sbamin/sitebuilder/releases)**
157+
Besides updating Docker Hub, if you are updating image also to github packages, update respective aliases.
148158

149159
* If using github container repo, this should work.
150160

0 commit comments

Comments
 (0)