https://www.jianshu.com/p/226401d00f24
DOCKER安装
docker run --rm -p 8000:8000 surrealdb/surrealdb:latest start --user root --pass root
使用 docker-compose
version: '3.8'
services:
surrealdb:
image: surrealdb/surrealdb:latest
container_name: surrealdb
ports:
- "8000:8000"
stdin_open: true
tty: true
command:
- start
- --user=root
- --pass=root
restart: always
这是一个完整的基础版本的 docker-compose,然后我还需要把 traefik 的配置加进来:
version: '3.8'
services:
surrealdb:
image: surrealdb/surrealdb:latest
container_name: surrealdb
ports:
- "8000:8000"
stdin_open: true
tty: true
command:
- start
- --user=root
- --pass=root
restart: always
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.services.surreal.loadbalancer.server.port=8000"
- "traefik.http.routers.surreal0.entrypoints=http"
- "traefik.http.routers.surreal0.middlewares=https-redirect@file"
- "traefik.http.routers.surreal0.entrypoints=https"
- "traefik.http.routers.surreal0.rule=Host(`surreal.$DOMAIN`)"
- "traefik.http.routers.surreal.entrypoints=https"
- "traefik.http.routers.surreal.rule=Host(`surreal.$DOMAIN`)"
- "traefik.http.routers.surreal.tls=true"
networks:
traefik:
external: true
现在来看虽然是比较完备的,但是如果在实际应用中我们还需要让这个数据库拥有备份功能,下面我将重新制作一个 Dockerfile 来支持数据库备份的 CLI。
Dockerfile
docker-compose.yaml 最终版
version: '3.8'
services: db: env_file:
- ./.env
build:
args:
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD} context: ./ dockerfile: Dockerfile image: db ports:
- 8000:8000 volumes:
- ./data/database.db:/database.dbservices: db: env_file:
- ./.env
build:
args:
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD} context: ./ dockerfile: Dockerfile image: db ports:
- 8000:8000 restart: always networks:
- traefik volumes:
- ./data/database.db:/database.db labels:
- "traefik.enable=true"
- "traefik.http.services.surreal.loadbalancer.server.port=8000"
- "traefik.http.routers.surreal0.entrypoints=http"
- "traefik.http.routers.surreal0.middlewares=https-redirect@file"
- "traefik.http.routers.surreal0.entrypoints=https"
- "traefik.http.routers.surreal0.rule=Host(
surreal.$DOMAIN
)" - "traefik.http.routers.surreal.entrypoints=https"
- "traefik.http.routers.surreal.rule=Host(
surreal.$DOMAIN
)" - "traefik.http.routers.surreal.tls=true"
networks:
traefik:
external: true
.env 文件
DB_USER=root
DB_PASSWORD=root
有了这 3 个文件,就可以运行 surrealdb,并连接到 image:
docker ps
docker exec -it <DOCKER IMAGE ID> /bin/sh`
使用实例执行 backup up 命令:
/surreal export --conn http://localhost:8000 --user root --pass root --ns test --db test export.sql
命令必须以 Dockerfile 中描述的 '/surreal' 开头。
现在我们已经可以使用 docker-compose 运行 surrealDB 了,这样应该没有问题应用在 Nuxt 3 项目中了吧?