diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3167013 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ + +FROM ruby:3.2.2-alpine AS builder + +RUN apk update && apk add g++ make git git-lfs + +RUN mkdir -p /home +COPY Gemfile /home +#COPY Gemfile.lock /home +COPY _vendor /home/_vendor +WORKDIR /home +RUN bundle install + +FROM ruby:3.2.2-alpine + +RUN apk update && apk add git + +COPY --from=builder /usr/local/bundle /usr/local/bundle +RUN mkdir -p /home +WORKDIR /home + +CMD ["jekyll", "serve", "--host", "0.0.0.0"] + diff --git a/Gemfile.lock b/Gemfile.lock index 3dbd977..ecba5d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,20 +8,21 @@ PATH GEM remote: https://rubygems.org/ specs: - addressable (2.8.1) + addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) - concurrent-ruby (1.1.6) - em-websocket (0.5.1) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - eventmachine (1.3.0.dev.1) + http_parser.rb (~> 0) + eventmachine (1.2.7) ffi (1.15.5) forwardable-extended (2.6.0) - http_parser.rb (0.6.0) - i18n (1.10.0) + google-protobuf (3.23.4-x86_64-linux) + http_parser.rb (0.8.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) - jekyll (4.3.1) + jekyll (4.3.2) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -30,14 +31,15 @@ GEM jekyll-watch (~> 2.0) kramdown (~> 2.3, >= 2.3.1) kramdown-parser-gfm (~> 1.0) - liquid (>= 4.0, < 6) + 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-sass-converter (2.2.0) - sassc (> 2.0.1, < 3.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) @@ -46,29 +48,32 @@ GEM rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (5.4.0) - listen (3.7.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) - pathutil (0.16.1) + pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) + public_suffix (5.0.3) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.5) - rouge (3.30.0) - sassc (2.4.0) - ffi (~> 1.9) + rouge (4.1.2) + safe_yaml (1.0.5) + sass-embedded (1.64.1-x86_64-linux-musl) + google-protobuf (~> 3.23) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - unicode-display_width (1.6.1) + unicode-display_width (2.4.2) webrick (1.8.1) PLATFORMS - ruby + x86_64-linux-musl DEPENDENCIES jekyll-theme-console! BUNDLED WITH - 2.3.15 + 2.4.10 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0580573 --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +.PHONY: build +build: + # Build Docker image + docker build -t distrust-co . + + # Export site to _site directory + docker run -v $(shell pwd):/home -it distrust-co jekyll build + +.PHONY: serve +serve: + # Run Docker container with listener for current dir and port mapping + docker run -v $(shell pwd):/home -p 0.0.0.0:4000:4000 -it distrust-co + +.PHONY: clean +clean: + # Remove _site directory + rm -rf _site diff --git a/README.md b/README.md index ab09399..18fc7ac 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,11 @@ Web page source. ## Instructions +0. If the repo was not cloned with submodules: +```shell +$ git submodule update --init --recursive +``` + 1. Install `make`. 2. Install `docker` 3. Build (export) site to `_site` directory: