如何在 dockerized 带中保留我的内容类型

Aid*_*wen 5 docker strapi

我一直在为 docker 使用 Strapi(https://github.com/strapi/strapi-docker),但是每当我重建我的容器时,数据都会消失。我仍然可以在数据库中看到它,但管理员无法识别它。

我尝试重新创建内容类型,然后出现了数据库中的记录,但是当我再次重建容器时,内容类型消失了

内容定义存储在哪里?这是应用程序的错误吗?(我认为 Strapi-docker 使用的是 alpha 版本)

如何让 Strapi 在数据库中保留我的内容定义,以便我可以使用无状态容器?

更新

我试着查看附加的卷 -

  api:
    build: .
    env_file: './dev.env'
    ports:
      - 1337:1337
    volumes:
      - ./strapi-app:/usr/src/api/strapi-app
      #- /usr/src/api/strapi-app/node_modules
    restart: always
Run Code Online (Sandbox Code Playgroud)

但里面什么都没有——

Aidans-MacBook:strapi-docker aidan$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS                    NAMES
02b098286ada        strapi-docker_api   "docker-entrypoint.s…"   24 minutes ago      Up 5 minutes (healthy)   0.0.0.0:1337->1337/tcp   strapi-docker_api_1
Aidans-MacBook:strapi-docker aidan$ docker inspect -f "{{.Mounts}}" 02b098286ada
[{bind  /Users/aidan/Documents/Code/beefbook/strapi-docker/strapi-app /usr/src/api/strapi-app  rw true rprivate}]
Aidans-MacBook:strapi-docker aidan$ ls /Users/aidan/Documents/Code/beefbook/strapi-docker/strapi-app
Aidans-MacBook:strapi-docker aidan$ 
Run Code Online (Sandbox Code Playgroud)

Adi*_*iii 6

您需要挂载目录以保持文件持久性。

- ./strapi-app:/usr/src/api/strapi-app申请用

- ./db:/data/db 对于数据库


version: '3'

services:
  api:
    build: .
    image: strapi/strapi
    environment:
      - APP_NAME=strapi-app
      - DATABASE_CLIENT=mongo
      - DATABASE_HOST=db
      - DATABASE_PORT=27017
      - DATABASE_NAME=strapi
      - DATABASE_USERNAME=
      - DATABASE_PASSWORD=
      - DATABASE_SSL=false
      - DATABASE_AUTHENTICATION_DATABASE=strapi
      - HOST=localhost
    ports:
      - 1337:1337
    volumes:
      - ./strapi-app:/usr/src/api/strapi-app
      #- /usr/src/api/strapi-app/node_modules
    depends_on:
      - db
    restart: always

  db:
    image: mongo
    environment:
      - MONGO_INITDB_DATABASE=strapi
    ports:
      - 27017:27017
    volumes:
      - ./db:/data/db
    restart: always

Run Code Online (Sandbox Code Playgroud)

运行docker-compose up你会看到数据现在已经持久化了。

更新:

经过@Aidan 的调查

它使用APP_NAME环境变量(默认为“strapi-app”)。所以正确的安装是/usr/src/api/beef-content(因为在我的例子中,是APP_NAMEbeef-content。我将用它来安装我的卷