feat: docker deployments

This commit is contained in:
taskylizard 2025-05-19 23:13:03 +00:00
parent b58ec2778f
commit 4e83c31e9f
No known key found for this signature in database
GPG key ID: 1820131ED1A24120
4 changed files with 61 additions and 1 deletions

5
.dockerignore Normal file
View file

@ -0,0 +1,5 @@
node_modules
.git
.gitignore
dist
cache

21
Dockerfile Normal file
View file

@ -0,0 +1,21 @@
FROM node:21-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
COPY . /app
WORKDIR /app
FROM base AS prod-deps
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
FROM base AS build
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm run docs:build
FROM base
COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/docs/.vitepress/dist /app/docs/.vitepress/dist
EXPOSE 4173
CMD ["pnpm", "docs:preview"]

15
docker-compose.yaml Normal file
View file

@ -0,0 +1,15 @@
services:
docs:
networks: [fmhy]
build:
context: .
dockerfile: Dockerfile
image: fmhy-docs
container_name: docs
restart: unless-stopped
ports:
- '4173:4173'
networks:
fmhy:

View file

@ -13,6 +13,25 @@ Do note that you **must** differentiate your instance from the official site (fm
#### Prerequisites
### Docker (Experimental)
You will need to install Docker and Docker Compose run your own instance of FMHY locally.
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
After installing Docker and Docker Compose, run the following commands:
```bash
git clone https://github.com/fmhy/edit.git
cd edit
sudo docker compose up --build
```
It should take a few minutes to build the image and start the container, running at port 4173.
### Manually
- [Git](https://git-scm.com/downloads)
- [Node.js](https://nodejs.org/en/download/) - Use the latest available LTS, doesn't matter much
- [pnpm 9.12.2 or newer](https://pnpm.io/installation)
@ -104,4 +123,4 @@ You may want to disable NSFW content (sidebar entry, page contents) and/or the A
rm -rf docs/.vitepress/cache
rm -rf docs/.vitepress/dist
pnpm install
```
```