Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker集装箱内提升帆_Docker_Sails.js_Docker Compose_Dockerfile - Fatal编程技术网

在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