31 lines
520 B
Docker
31 lines
520 B
Docker
|
|
# Build stage
|
||
|
|
FROM ruby:3.4.1-alpine AS builder
|
||
|
|
|
||
|
|
# Install build dependencies
|
||
|
|
RUN apk add --no-cache build-base
|
||
|
|
|
||
|
|
# Set working directory
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Copy Gemfile and install dependencies
|
||
|
|
COPY Gemfile Gemfile.lock ./
|
||
|
|
RUN bundle install
|
||
|
|
|
||
|
|
# Copy source files
|
||
|
|
COPY . .
|
||
|
|
|
||
|
|
# Build Jekyll site
|
||
|
|
RUN bundle exec jekyll build
|
||
|
|
|
||
|
|
# Production stage
|
||
|
|
FROM nginx:alpine
|
||
|
|
|
||
|
|
# Copy built site from builder
|
||
|
|
COPY --from=builder /app/_site /usr/share/nginx/html
|
||
|
|
|
||
|
|
# Expose port 80
|
||
|
|
EXPOSE 80
|
||
|
|
|
||
|
|
# Start nginx
|
||
|
|
CMD ["nginx", "-g", "daemon off;"]
|