mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 11:03:34 +00:00
chore: add Docker image for docs and Uncloud Compose deployment (dogfooding!)
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
CORROSION_IMAGE ?= ghcr.io/psviderski/corrosion:latest
|
CORROSION_IMAGE ?= ghcr.io/psviderski/corrosion:latest
|
||||||
UCIND_IMAGE ?= ghcr.io/psviderski/ucind:latest
|
UCIND_IMAGE ?= ghcr.io/psviderski/ucind:latest
|
||||||
|
DOCS_IMAGE ?= ghcr.io/psviderski/uncloud-docs:latest
|
||||||
|
|
||||||
update-dev:
|
update-dev:
|
||||||
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
GOOS=linux GOARCH=amd64 go build -o uncloudd-linux-amd64 ./cmd/uncloudd && \
|
||||||
@@ -68,3 +69,7 @@ test:
|
|||||||
.PHONY: vet
|
.PHONY: vet
|
||||||
vet:
|
vet:
|
||||||
go vet ./...
|
go vet ./...
|
||||||
|
|
||||||
|
.PHONY: docs-image-push
|
||||||
|
docs-image:
|
||||||
|
docker buildx build --push --platform linux/amd64,linux/arm64 -t "$(DOCS_IMAGE)" ./docs
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Ignore everything and use an allowlist of what is allowed to not package any secrets by accident.
|
||||||
|
*
|
||||||
|
|
||||||
|
# Allow files and directories.
|
||||||
|
!docs/
|
||||||
|
!src/
|
||||||
|
!static/
|
||||||
|
!pkg/
|
||||||
|
!Caddyfile
|
||||||
|
!*.js
|
||||||
|
!*.json
|
||||||
|
|
||||||
|
# Ignore unnecessary files inside allowed directories.
|
||||||
|
**/.DS_Store
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
admin off
|
||||||
|
}
|
||||||
|
|
||||||
|
:8000 {
|
||||||
|
root * /usr/share/caddy
|
||||||
|
file_server
|
||||||
|
try_files {path} /index.html
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# Stage 1: Base image.
|
||||||
|
## Start with a base image containing NodeJS so we can build Docusaurus.
|
||||||
|
FROM node:lts-alpine AS base
|
||||||
|
## Disable colour output from yarn to make logs easier to read.
|
||||||
|
ENV FORCE_COLOR=0
|
||||||
|
## Enable corepack.
|
||||||
|
RUN corepack enable
|
||||||
|
## Set the working directory to `/opt/docusaurus`.
|
||||||
|
WORKDIR /opt/docusaurus
|
||||||
|
|
||||||
|
# Stage 2: Production build.
|
||||||
|
FROM base AS prod
|
||||||
|
## Set the working directory to `/opt/docusaurus`.
|
||||||
|
WORKDIR /opt/docusaurus
|
||||||
|
## Copy over the source code.
|
||||||
|
COPY . /opt/docusaurus/
|
||||||
|
## Install dependencies with `--immutable` to ensure reproducibility.
|
||||||
|
RUN npm ci
|
||||||
|
## Build the static site.
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Stage 3: Serve static site with Caddy.
|
||||||
|
FROM caddy:2.10.0-alpine AS caddy
|
||||||
|
## Copy the Caddyfile.
|
||||||
|
COPY ./Caddyfile /etc/caddy/Caddyfile
|
||||||
|
## Copy the Docusaurus build output.
|
||||||
|
COPY --from=prod /opt/docusaurus/build /usr/share/caddy
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
services:
|
||||||
|
uncloud-docs:
|
||||||
|
image: ghcr.io/psviderski/uncloud-docs:latest
|
||||||
|
pull_policy: always
|
||||||
|
user: nobody
|
||||||
|
x-ports:
|
||||||
|
- docs.uncloud.run:8000/https
|
||||||
Reference in New Issue
Block a user