Prepare Jekyll requirements

Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
This commit is contained in:
bEn 2024-04-24 00:33:08 +02:00
parent 45c5f5a6cb
commit 614d8b82f7
7 changed files with 245 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
/.gemrc
/_site
/.sass-cache
/src/.jekyll-metadata
/src/.jekyll-cache

1
Gemfile Symbolic link
View File

@ -0,0 +1 @@
docker/jekyll/Gemfile

1
Gemfile.lock Symbolic link
View File

@ -0,0 +1 @@
docker/jekyll/Gemfile.lock

29
docker-compose.yml Normal file
View File

@ -0,0 +1,29 @@
version: '3'
services:
jekyll:
build:
context: docker/jekyll
args:
uid: "${_UID:-1000}"
gid: "${_GID:-1000}"
volumes:
- .:/home/jekyll/workspace
working_dir: /home/jekyll/workspace
ports:
- "4000:4000"
stdin_open: true
tty: true
hostname: jekyll.local
container_name: jekyll.local
command: bash
networks:
- bridge
deploy:
resources:
limits:
cpus: '1.5'
memory: 512M
networks:
bridge:
external: true

41
docker/jekyll/Dockerfile Normal file
View File

@ -0,0 +1,41 @@
# Pull base image from official repo
FROM rubylang/ruby:3.3.0-jammy
# Install some required packages for building Gems
RUN INSTALL_PKGS="gcc g++ libyaml-dev make nodejs" && \
apt-get -q clean && \
apt-get -q update && \
apt-get install -y $INSTALL_PKGS && \
apt-get -q clean
# Parameters for default user:group
ARG uid=1000
ARG user=ubuntu
ARG gid=1000
ARG group=ubuntu
# Add or modify user and group for build and runtime (convenient)
#RUN id ${user} > /dev/null 2>&1 && \
# { groupmod -g "${gid}" "${group}" && usermod -md /home/${user} -s /bin/bash -g "${group}" -u "${uid}" "${user}"; } || \
# { groupadd -g "${gid}" "${group}" && useradd -md /home/${user} -s /bin/bash -g "${group}" -u "${uid}" "${user}"; }
# Copy requirements in non-root user home directory
COPY Gemfile Gemfile.lock "/home/${user}/"
RUN chown "${user}:${group}" "/home/${user}/Gemfile"*
# Switch to non-root user
USER ${user}
WORKDIR /home/${user}
# Install required gems
RUN echo "gem: --no-document --user-install --bindir /home/${user}/bin" >> /home/${user}/.gemrc && \
echo "gempath: /home/${user}/.gem/ruby:/home/${user}/.bundle/gems/ruby/3.3.0" >> .gemrc && \
gem install bundler --version `sed -n -r -e '/BUNDLED WITH/,$ { s/\s+([.0-9]+)/\1/ p }' Gemfile.lock` && \
bundle config --global path /home/${user}/.bundle/gems && \
bundle config --global bin /home/${user}/bin && \
bundle install && \
rm -rf /home/${user}/.bundle/cache
ENV PATH=/home/${user}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD [ 'jekyll', 's', 'source', './src', '--verbose', '--host 0.0.0.0', '--incremental' ]

43
docker/jekyll/Gemfile Normal file
View File

@ -0,0 +1,43 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve --live
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.3.3"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
# gem "minima", "2.0"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# my custom gems
gem 'bootstrap', '~> 5.3.2'
gem "minima"
gem "minimal-mistakes-jekyll", '~> 4.25.0'
# The following plugins are automatically loaded by the theme-gem:
# gem "jekyll-paginate"
# gem "jekyll-sitemap"
# gem "jekyll-gist"
# gem "jekyll-feed"
# gem "jemoji"
# gem "jekyll-data"
# gem "jekyll-include-cache"
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-autoprefixer"
gem "jekyll-archives"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# Performance-booster for watching directories on Windows
gem "wdm", "0.1.0" if Gem.win_platform?

125
docker/jekyll/Gemfile.lock Normal file
View File

@ -0,0 +1,125 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
autoprefixer-rails (9.8.6.5)
execjs
bootstrap (5.3.2)
autoprefixer-rails (>= 9.1.0)
popper_js (>= 2.11.8, < 3)
colorator (1.1.0)
concurrent-ruby (1.2.3)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
execjs (2.7.0)
faraday (2.9.0)
faraday-net_http (>= 2.0, < 3.2)
faraday-net_http (3.1.0)
net-http
ffi (1.16.3)
forwardable-extended (2.6.0)
google-protobuf (4.26.1)
rake (>= 13)
http_parser.rb (0.8.0)
i18n (1.14.4)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-archives (2.2.1)
jekyll (>= 3.6, < 5.0)
jekyll-autoprefixer (1.0.2)
autoprefixer-rails (~> 9.3)
jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-paginate (1.1.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minimal-mistakes-jekyll (4.25.0)
jekyll (>= 3.7, < 5.0)
jekyll-feed (~> 0.1)
jekyll-gist (~> 1.5)
jekyll-include-cache (~> 0.1)
jekyll-paginate (~> 1.1)
jekyll-sitemap (~> 1.3)
net-http (0.4.1)
uri
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
popper_js (2.11.8)
public_suffix (5.0.5)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
rouge (4.2.1)
safe_yaml (1.0.5)
sass-embedded (1.75.0)
google-protobuf (>= 3.25, < 5.0)
rake (>= 13.0.0)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.5.0)
uri (0.13.0)
webrick (1.8.1)
PLATFORMS
ruby
DEPENDENCIES
bootstrap (~> 5.3.2)
jekyll (~> 4.3.3)
jekyll-archives
jekyll-autoprefixer
minima
minimal-mistakes-jekyll (~> 4.25.0)
tzinfo-data
BUNDLED WITH
2.5.3