Merge remote-tracking branch 'origin/misc/docker' into release/0.2.3

This commit is contained in:
dswbx
2024-12-07 09:29:48 +01:00
3 changed files with 67 additions and 1 deletions

4
.gitignore vendored
View File

@@ -20,8 +20,10 @@ packages/media/.env
**/*/*.db **/*/*.db
**/*/*.db-shm **/*/*.db-shm
**/*/*.db-wal **/*/*.db-wal
**/*/.tmp
.npmrc .npmrc
/.verdaccio /.verdaccio
.idea .idea
.vscode .vscode
.git_old .git_old
docker/tmp

28
docker/Dockerfile Normal file
View File

@@ -0,0 +1,28 @@
# Stage 1: Build stage
FROM node:20 as builder
WORKDIR /app
# Install & copy required cli
RUN npm install --omit=dev bknd
RUN mkdir /output && cp -r node_modules/bknd/dist /output/dist
# Stage 2: Final minimal image
FROM node:20-alpine
WORKDIR /app
# Install pm2 and libsql
RUN npm install -g pm2
RUN echo '{"type":"module"}' > package.json
RUN npm install @libsql/client
# Create volume and init args
VOLUME /data
ENV DEFAULT_ARGS "--db-url file:/data/data.db"
# Copy output from builder
COPY --from=builder /output/dist ./dist
EXPOSE 1337
CMD ["pm2-runtime", "dist/cli/index.js run ${ARGS:-${DEFAULT_ARGS}}"]

36
docker/README.md Normal file
View File

@@ -0,0 +1,36 @@
# Official `bknd` Docker image
The docker image intentially doesn't copy any data into the image for now, so you can copy the
Dockerfile and build the image anywhere.
## Building the Docker image
To build the Docker image, run the following command:
```bash
docker build -t bknd .
```
## Running the Docker container
To run the Docker container, run the following command:
```bash
docker run -p 1337:1337 bknd
```
You can pass the same CLI arguments (see [Using the CLI](https://docs.bknd.io/cli) guide) to the
docker container as you'd do with
`npx bknd
run`,
like so:
```bash
docker run -p 1337:1337 -e ARGS="--db-url file:/data/data.db" bknd
```
Or connect to a remote turso database:
```bash
docker run -p 1337:1337 -e ARGS="--db-url libsql://<db>.turso.io --db-token <token>" bknd
```
To mount the data directory to the host, you can use the `-v` flag:
```bash
docker run -p 1337:1337 -v /path/to/data:/data bknd
```