extroonie.com/Dockerfile
2026-09-18 15:30:20 -07:00

26 lines
1.2 KiB
Docker

# syntax=docker/dockerfile:1
FROM oven/bun:1.4.2-alpine AS development
ARG HUGO_VERSION=0.166.0
ARG TARGETARCH
RUN apk add --no-cache curl ca-certificates \
&& curl -fsSL "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-${TARGETARCH}.tar.gz" -o /tmp/hugo.tar.gz \
&& curl -fsSL "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_checksums.txt" -o /tmp/checksums.txt \
&& awk -v name="hugo_${HUGO_VERSION}_linux-${TARGETARCH}.tar.gz" '$2 == name {print $1 " /tmp/hugo.tar.gz"}' /tmp/checksums.txt > /tmp/checksum.txt \
&& test -s /tmp/checksum.txt \
&& sha256sum -c /tmp/checksum.txt \
&& tar -xzf /tmp/hugo.tar.gz -C /usr/local/bin hugo \
&& rm /tmp/hugo.tar.gz /tmp/checksums.txt /tmp/checksum.txt
WORKDIR /site
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile --ignore-scripts
COPY . .
EXPOSE 1313
CMD ["bun", "run", "dev", "--host", "0.0.0.0"]
FROM development AS build
ARG SITE_BASE_URL
RUN bun run format:check && bun run test && bun run build
FROM caddy:2.11.4-alpine AS production
LABEL com.extroonie.app="website"
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /site/dist /srv
EXPOSE 8080