在Docker集装箱内提升帆
我知道有多个例子(实际上只有几个),我已经研究了一些,并试图将它们应用到我的案例中,但当我尝试提起容器(在Docker集装箱内提升帆,docker,sails.js,docker-compose,dockerfile,Docker,Sails.js,Docker Compose,Dockerfile,我知道有多个例子(实际上只有几个),我已经研究了一些,并试图将它们应用到我的案例中,但当我尝试提起容器(docker compose up)时,每次都或多或少地出现相同的错误 我的文件夹结构是: sails-project --app ----api ----config ----node_modules ----.sailsrc ----app.js ----package.json --docker-compose.yml --Dockerfile docker compose.yml文
docker compose up
)时,每次都或多或少地出现相同的错误
我的文件夹结构是:
sails-project
--app
----api
----config
----node_modules
----.sailsrc
----app.js
----package.json
--docker-compose.yml
--Dockerfile
docker compose.yml
文件:
sails:
build: .
ports:
- "8001:80"
links:
- postgres
volumes:
- ./app:/app
environment:
- NODE_ENV=development
command: node app
postgres:
image: postgres:latest
ports:
- "8002:5432"
以及Dockerfile
:
FROM node:0.12.3
RUN mkdir /app
WORKDIR /app
# the dependencies are already installed in the local copy of the project, so
# they will be copied to the container
ADD app /app
CMD ["/app/app.js", "--no-daemon"]
RUN cd /app; npm i
我还尝试让运行npm I-g sails
(在Dockerfile
中)和命令:sails lift
,但我得到了:
当然,我尝试了
Dockerfile
的不同配置,然后使用不同的命令(node-app
,sails-lift
,npm-start
,等等),但总是以相同的错误告终。有什么想法吗?通过使用命令:node-app
您正在覆盖CMD[“/app/app.js”,“--no-daemon”]
,因此不会产生任何效果WORKDIR/app
这样您就不必运行mkdir/app
。最重要的是你必须运行cd/app;npm i
在CMD[“/app/app.js”,“无守护进程”]
之前。必须在启动应用程序之前安装NPM依赖项。忘了说我已经在项目的本地副本中安装了依赖项,因此ADD app/app
将复制依赖项。我现在将使用此信息更新OP:)@当然可以。然而,在vanilla sails项目中,node_模块中的sails文件夹是一个符号链接。在dockerfile中,只复制符号链接,而不是整个文件夹。为了在你的项目文件夹中本地测试这个安装,我做了,它现在运行正常,我不知道为什么和如何。我在Dockerfile
@Milkncookiez中没有什么变化,很高兴我能帮上忙:D