Setup local docker-based development environment
This commit is contained in:
parent
07b6ba2ae5
commit
cc07af72c5
30
Dockerfile
Normal file
30
Dockerfile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
FROM ruby:3.0.0 as jekyll
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# used in the jekyll-server image, which is FROM this image
|
||||||
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
|
||||||
|
RUN gem update --system && gem install jekyll && gem cleanup
|
||||||
|
|
||||||
|
EXPOSE 4000
|
||||||
|
|
||||||
|
WORKDIR /site
|
||||||
|
|
||||||
|
ENTRYPOINT [ "jekyll" ]
|
||||||
|
|
||||||
|
CMD [ "--help" ]
|
||||||
|
|
||||||
|
# build from the image we just built with different metadata
|
||||||
|
FROM jekyll as jekyll-serve
|
||||||
|
|
||||||
|
COPY --from=jekyll /usr/local/bin/docker-entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
|
# on every container start, check if Gemfile exists and warn if it's missing
|
||||||
|
ENTRYPOINT [ "docker-entrypoint.sh" ]
|
||||||
|
|
||||||
|
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
|
2
Gemfile
2
Gemfile
@ -33,3 +33,5 @@ gem 'wdm', '~> 0.1.1', platforms: %i[mingw x64_mingw mswin]
|
|||||||
gem 'html-proofer', '~> 3.19'
|
gem 'html-proofer', '~> 3.19'
|
||||||
|
|
||||||
gem 'rake', '~> 13.0'
|
gem 'rake', '~> 13.0'
|
||||||
|
|
||||||
|
gem 'webrick'
|
||||||
|
@ -99,6 +99,7 @@ GEM
|
|||||||
typhoeus (1.4.0)
|
typhoeus (1.4.0)
|
||||||
ethon (>= 0.9.0)
|
ethon (>= 0.9.0)
|
||||||
unicode-display_width (1.7.0)
|
unicode-display_width (1.7.0)
|
||||||
|
webrick (1.8.1)
|
||||||
yell (2.2.2)
|
yell (2.2.2)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
@ -115,6 +116,7 @@ DEPENDENCIES
|
|||||||
tzinfo (~> 1.2)
|
tzinfo (~> 1.2)
|
||||||
tzinfo-data
|
tzinfo-data
|
||||||
wdm (~> 0.1.1)
|
wdm (~> 0.1.1)
|
||||||
|
webrick
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.2.13
|
2.2.13
|
||||||
|
9
docker-compose.yml
Normal file
9
docker-compose.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# no version needed since 2020
|
||||||
|
|
||||||
|
services:
|
||||||
|
jekyll:
|
||||||
|
image: git.autonomic.zone/autonomic-cooperative/kcl-site:latest
|
||||||
|
volumes:
|
||||||
|
- .:/site
|
||||||
|
ports:
|
||||||
|
- '4000:4000'
|
19
docker-entrypoint.sh
Normal file
19
docker-entrypoint.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ ! -f Gemfile ]; then
|
||||||
|
echo "NOTE: hmm, I don't see a Gemfile so I don't think there's a jekyll site here"
|
||||||
|
echo "Either you didn't mount a volume, or you mounted it incorrectly."
|
||||||
|
echo "Be sure you're in your jekyll site root and use something like this to launch"
|
||||||
|
echo ""
|
||||||
|
echo "docker run -p 4000:4000 -v \$(pwd):/site bretfisher/jekyll-serve"
|
||||||
|
echo ""
|
||||||
|
echo "NOTE: To create a new site, you can use the sister image bretfisher/jekyll like:"
|
||||||
|
echo ""
|
||||||
|
echo "docker run -v \$(pwd):/site bretfisher/jekyll new ."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
bundle install --retry 5 --jobs 20
|
||||||
|
|
||||||
|
exec "$@"
|
Loading…
Reference in New Issue
Block a user