【问题标题】:Bootstrap Strapi with docker-compose使用 docker-compose 引导 Strapi
【发布时间】:2020-03-31 16:56:17
【问题描述】:

我收到以下错误,无法弄清楚,出了什么问题:

我仔细阅读了文档,并根据https://github.com/strapi/strapi-docker/blob/master/examples/mysql/docker-compose.yml的示例制作了一个docker-compose.yml

api_1       | Using strapi 3.0.0-beta.19.3
api_1       | No project found at /srv/app. Creating a new strapi project
api_1       | Creating a new Strapi application at /srv/app.
api_1       |
api_1       | ⛔️ You can only create a Strapi app in an empty directory.
api_1       | Make sure /srv/app is empty.

那是我的 docker-compose.yml

version: "2.4"

services:
  api:
    depends_on:
      - database

    image: strapi/strapi

    container_name: core_api

    environment:
      #APP_NAME: wlc-core
      DATABASE_CLIENT: mysql
      DATABASE_HOST: database
      DATABASE_PORT: 3306
      DATABASE_NAME: development
      DATABASE_USERNAME: development
      DATABASE_PASSWORD: development
      DATABASE_SSL: "false"

    ports:
      - 1337:1337

    volumes:
      - ./services/api/api:/srv/app/api
      - ./services/api/config:/srv/app/config
      - ./services/api/extensions:/srv/app/extensions
      - ./services/api/public:/srv/app/public

  database:
    image: mariadb:10.4.4-bionic

    container_name: core_database

    volumes:
      - ./services/database/data:/var/lib/mysql

    ports:
      - 3306:3306

    environment:
      MYSQL_ROOT_PASSWORD: development
      MYSQL_DATABASE: development
      MYSQL_USER: development
      MYSQL_PASSWORD: development

我让那个容器运行了一次。但是从那以后它就不能再运行了。 我删除了已停止的容器,它是在构建新容器之前创建的。

【问题讨论】:

    标签: docker docker-compose strapi


    【解决方案1】:

    您配置了错误的卷。 如您提供的 Github 链接中所述,您需要在 core_api 中安装的唯一卷如下:

    volumes:
        - ./app:/srv/app
    

    或者在你的情况下:

    volumes:
        - ./services/api:/srv/api
    

    app 目录包含整个应用程序(API、模型、配置等)。所以你不需要挂载每个子目录,只需要挂载顶级目录。

    【讨论】:

    • 我已经认为这是原因。但是,即使我像您那样做并且示例中说的那样,也会发生同样的情况。顺便说一句,我确实绑定了每个相关文件夹,因为我不想让 node_modules 反映在主机上,因为我认为这会对性能产生影响并且没有必要。如果我需要 node_modules 例如devDependencies 和我的 vs 代码,我仍然可以在我的主机上运行 yarn。此外,一些依赖项在不同的环境(主机:mac,容器:linux)中不起作用
    • 当您尝试仅挂载顶级目录时,您之前是否删除了容器?如果目标目录中已经有文件(这是您第一次尝试后的情况),Strapi 安装将失败。我用修改后的行尝试了你的 docker-compose.yml,它对我有用。
    • 是的,在尝试“顶级方式”之前,我确实删除了所有容器。这很奇怪!今天我又试了一次,果然奏效了。在docker-compose downdocker-compose up 之后再次失败。但这不是很奇怪,它说“在/srv/app 找不到项目。创建一个新的strapi 项目”?因此,错误的绑定挂载包含引发下一个错误的数据不会有问题。 (再次查看我的错误描述)。
    猜你喜欢
    • 2022-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2021-08-29
    • 2019-11-09
    相关资源
    最近更新 更多