Skip to content

Instantly share code, notes, and snippets.

@sekika
Created May 16, 2024 19:14
Show Gist options
  • Save sekika/a486fb7d07df30ff86e75c960051cfc1 to your computer and use it in GitHub Desktop.
Save sekika/a486fb7d07df30ff86e75c960051cfc1 to your computer and use it in GitHub Desktop.
for jekyll Docker
port = 5555
url = http://localhost:$(port)/
container = jekyll
image = $(container):1.0
repo = /Users/seki/git/sekika.github.io
www = /jekyll
mount = --mount type=bind,source=$(repo),destination=$(www)
all:
cat Readme.md
open:
@ pgrep -fq 'Docker' || make open-yes
open-yes:
@ echo "Opening Docker Desktop"
@ open -a Docker
@ while ! docker system info > /dev/null 2>&1; do sleep 1; done
install:
@ docker images | grep -q $(container) || make install-yes
install-yes:
@ echo "Installing Docker image $(image)..."
@ docker build -t $(image) .
@ docker run --name $(container) --hostname $(container) -d $(mount) -p $(port):4000 $(image)
@ make wait-server
start:
@ make open
@ make install
@ docker ps | grep -q $(image) || make start-yes
start-yes:
@ docker start $(container)
@ make wait-server
wait-server:
@ echo "Waiting for server at $(url)..."
@ while ! curl -s $(url) > /dev/null; do sleep 1; done
@ echo "Server is up at $(url)"
stop:
@ docker ps -q --filter ancestor=$(image) | xargs -r docker stop
sh:
@ make start
@ docker exec -it -u jekyll $(container) /bin/sh
root:
@ make start
@ docker exec -it -u root $(container) /bin/sh
update:
@ docker exec -t -u root $(container) /bin/sh -c "apk update && apk --no-cache upgrade"
@ docker exec -t -u jekyll $(container) /bin/sh -c "cd $(www) && rm -f Gemfile.lock && bundle install && bundle update --bundler"
clean:
@ make stop
@ docker rm $(container)
@ docker rmi $(image)
reinstall:
@ make clean
@ make install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment