From e3d205ff57114c4efc4c8f1f3e1a65772ebfa83b Mon Sep 17 00:00:00 2001 From: Hayden McAfee Date: Mon, 15 Dec 2025 23:37:15 -0800 Subject: [PATCH 1/3] Add Dockerfile --- .dockerignore | 11 +++++++++++ Dockerfile | 29 +++++++++++++++++++++++++++++ README.md | 8 +++++++- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..dfe7acb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +.github +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +node_modules +*.swp +*.swo +*~ +.DS_Store diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..04d8826 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +FROM ruby:3.3-slim + +# Install dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Configure bundler to install gems system-wide +ENV BUNDLE_PATH=/usr/local/bundle +ENV BUNDLE_BIN=/usr/local/bundle/bin +ENV GEM_HOME=/usr/local/bundle +ENV PATH="${BUNDLE_BIN}:${PATH}" + +# Set working directory +WORKDIR /site + +# Copy Gemfile and install dependencies +COPY Gemfile Gemfile.lock ./ +RUN bundle install + +# Copy the rest of the site +COPY . . + +# Expose Jekyll's default port +EXPOSE 4000 + +# Run Jekyll server with live reload and incremental builds +CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--livereload", "--incremental", "--drafts"] diff --git a/README.md b/README.md index 362b1ad..1f9e389 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,10 @@ This is my website. 😊 `bundle update --bundler` to update the bundler version. -`bundle exec jekyll serve` to build + start server. \ No newline at end of file +`bundle exec jekyll serve` to build + start server. + +### Docker + +`docker build -t jekyll-site .` + +`docker run --rm -p 4000:4000 -v .:/site:Z jekyll-site` \ No newline at end of file From 8964d10838a82404ca3344a31e84cfe22b488065 Mon Sep 17 00:00:00 2001 From: Hayden McAfee Date: Tue, 16 Dec 2025 13:44:22 -0800 Subject: [PATCH 2/3] Add docker-compose file --- docker-compose.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1103c7d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +services: + jekyll: + build: . + ports: + - "4000:4000" # Jekyll server + - "35729:35729" # LiveReload + volumes: + - .:/site:Z + environment: + - JEKYLL_ENV=development From d814f5a4990e384998aef45fab37e86aab730bcc Mon Sep 17 00:00:00 2001 From: Hayden McAfee Date: Tue, 16 Dec 2025 13:58:07 -0800 Subject: [PATCH 3/3] Add GHA to verify docker image --- .github/workflows/docker-pr.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/docker-pr.yml diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml new file mode 100644 index 0000000..88b4c70 --- /dev/null +++ b/.github/workflows/docker-pr.yml @@ -0,0 +1,15 @@ +name: Verify Docker Build + +on: + pull_request: + branches: ["master"] + +jobs: + docker-build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build Docker image + run: docker build -t jekyll-site:pr-${{ github.event.pull_request.number }} .