我知道那里有多个例子(实际上只有几个),我已经调查了一些并尝试将它们应用到我的案例中,但是当我尝试提起容器时(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
我尝试使用RUN npm i -g sails
代替(Dockerfile
)和command:sails lift
,但我得到了:
当然,我尝试了Dockerfile
的不同配置,然后使用不同的命令(node app
,sails lift
,npm start
等等),但不断结束有同样的错误。有什么想法吗?
答案 0 :(得分:2)
使用command: node app
,您将覆盖command CMD ["/app/app.js", "--no-daemon"]
,因此无效。 WORKDIR /app
will create an app folder所以您不必RUN mkdir /app
。最重要的是,RUN cd /app; npm i
之前必须CMD ["/app/app.js", "--no-daemon"]
。必须在启动应用程序之前安装NPM依赖项。