【发布时间】: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