【问题标题】:Strapi build for production hangs when using Dockerfile使用 Dockerfile 时,用于生产的 Strapi 构建挂起
【发布时间】:2021-04-25 19:18:13
【问题描述】:

我正在使用Dockerfile 在生产环境中部署一个 Strapi 应用程序。

从 node.js 运行时环境(使用yarn develop)开始时一切正常

One more thing...
Create your first administrator ???? by going to the administration panel at:

┌─────────────────────────────┐
│ http://localhost:1337/admin │
└─────────────────────────────┘

[2021-01-21T11:06:49.724Z] debug HEAD /admin (9 ms) 200
[2021-01-21T11:06:49.726Z] info ⏳ Opening the admin panel...
[2021-01-21T11:06:50.477Z] debug GET /admin (3 ms) 200
[2021-01-21T11:06:50.640Z] debug GET /admin/runtime~main.24109598.js (6 ms) 200
[2021-01-21T11:06:50.647Z] debug GET /admin/main.04cf6eef.chunk.js (2 ms) 200
[2021-01-21T11:06:51.871Z] debug GET /admin/init (28 ms) 200
[2021-01-21T11:06:51.938Z] debug GET /admin/842e7845f3f8e943ff712a39617b6b70.svg (2 ms) 200

这是我正在使用的Dockerfile

FROM strapi/base
WORKDIR /strapi
COPY ./package.json ./
COPY ./yarn.lock ./
RUN yarn install
COPY . .
ENV NODE_ENV production
RUN yarn build
EXPOSE 1337
RUN yarn start

在构建并尝试运行 docker 映像后,它会无限挂起,并且无法使其正常工作

One more thing...
Create your first administrator ???? by going to the administration panel at:

┌───────────────────────────┐
│ http://0.0.0.0:1337/admin │
└───────────────────────────┘

[2021-01-21T11:01:24.578Z] debug HEAD /admin (17 ms) 200
[2021-01-21T11:01:24.584Z] info ⏳ Opening the admin panel...

这是与 node.js 环境完美配合的.env 文件

PORT=1337
DATABASE_URI=<connection-string>

这是我用来检查它是否运行的命令:

docker build -t can/api . && docker run --rm -p 1337:1337 can/api

当我尝试手动设置 HOST 时,它会这样说:

---> Running in 6a1d5711fe55
yarn run v1.22.5
$ strapi start
[2021-01-21T11:15:44.774Z] error Error: listen EADDRNOTAVAIL: address not available 192.168.0.19:1337
    at Server.setupListenHandle [as _listen2] (net.js:1299:21)
    at listenInCluster (net.js:1364:12)
    at doListen (net.js:1501:7)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)

谢谢!

【问题讨论】:

  • 数据库在哪里?
  • 它是天蓝色的。但正如我所说,它在尝试从节点运行时 env 连接时完美运行,但在使用 docker 构建时却不行,我认为这是主机问题,这就是为什么我尝试手动设置主机,但它也不起作用

标签: node.js docker dockerfile strapi


【解决方案1】:

我的 docker 文件略有不同,我确实将 env 复制到文件夹中:

FROM strapi/base

WORKDIR /app

COPY ./package.json ./
COPY ./yarn.lock ./
COPY ./.env ./

RUN yarn install

COPY . .

ENV NODE_ENV production
ENV ENV_PATH /app/.env
 
RUN yarn build

EXPOSE 1337

CMD ["yarn", "start"]

这些是我使用 docker 部署它时使用的命令

docker build -t stayactivebackend .

docker run -ti -d -p 1337:1337 -v /var/www/strapiRepositoryPath/public/uploads:/app/public/uploads --network=host stayactivebackend:latest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2018-10-13
    • 2016-06-14
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多