mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
Merge remote-tracking branch 'origin/misc/docker' into release/0.2.3
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -20,8 +20,10 @@ packages/media/.env
|
||||
**/*/*.db
|
||||
**/*/*.db-shm
|
||||
**/*/*.db-wal
|
||||
**/*/.tmp
|
||||
.npmrc
|
||||
/.verdaccio
|
||||
.idea
|
||||
.vscode
|
||||
.git_old
|
||||
.git_old
|
||||
docker/tmp
|
||||
28
docker/Dockerfile
Normal file
28
docker/Dockerfile
Normal 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
36
docker/README.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user