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/.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 }} . 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 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