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

时间:2019-09-04 16:59:43

标签: docker strapi

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

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

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

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

更新

我尝试查看附件中的内容-

  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

但是里面什么都没有-

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$ 

2 个答案:

答案 0 :(得分:1)

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

break-inside供申请

- ./strapi-app:/usr/src/api/strapi-app对于DB

- ./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 ,您将看到数据现在已经保持不变。

已更新:

经过@Aidan调查

已使用 APP_NAME env var(默认为“ strapi-app”)。因此正确的挂载是docker-compose up(因为在我的情况下,/usr/src/api/beef-contentAPP_NAME)。我会用它来装载我的音量

答案 1 :(得分:0)

我的项目“ strapidocker-tools”可能有解决方案: https://github.com/OliCpg/strapidocker-tools

这将使您备份,移动和还原整个dockerized Stradi项目。

请注意,它将与两个名为trapi和strati_db的泊坞窗容器一起使用。您不应该重命名它们(我稍后将对其进行更改)。它们会在还原后重新创建。

目前仍在进行中,尚不十分优雅,但对我有用。

欢迎反馈。