mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-15 20:17:22 +00:00
added an initial docker image
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -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
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