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
Node.js 在WORKDIR子目录的上下文中运行Docker CMD_Node.js_Docker - Fatal编程技术网

Node.js 在WORKDIR子目录的上下文中运行Docker CMD

Node.js 在WORKDIR子目录的上下文中运行Docker CMD,node.js,docker,Node.js,Docker,我需要CMD在/app/server中的package.json文件的上下文中运行。现在它正在应用程序root中运行,其中没有package.json: FROM node:14.8.0-alpine WORKDIR /app ENV PORT 8080 COPY app ./ CMD [ "yarn", "start-server" ] 您可以通过两种方式执行此操作: 正确的方法是使用额外的WORKDIR: FROM node:14.8.0-alpin

我需要CMD在
/app/server
中的package.json文件的上下文中运行。现在它正在应用程序
root
中运行,其中没有package.json:

FROM node:14.8.0-alpine
WORKDIR /app
ENV PORT 8080
COPY app ./
CMD [ "yarn", "start-server" ]

您可以通过两种方式执行此操作:

  • 正确的方法是使用额外的
    WORKDIR

    FROM node:14.8.0-alpine`
    WORKDIR /app
    ENV PORT 8080
    COPY app ./
    WORKDIR /app/server
    CMD [ "npm", "run", "serve" ]
    
  • 您可以将shell命令指定为映像的
    CMD
    ,包括
    cd
    ,以在启动时更改目录:

    CMD cd /server && npm run serve
    

  • 您可以通过两种方式执行此操作:

  • 正确的方法是使用额外的
    WORKDIR

    FROM node:14.8.0-alpine`
    WORKDIR /app
    ENV PORT 8080
    COPY app ./
    WORKDIR /app/server
    CMD [ "npm", "run", "serve" ]
    
  • 您可以将shell命令指定为映像的
    CMD
    ,包括
    cd
    ,以在启动时更改目录:

    CMD cd /server && npm run serve
    

  • 您可以多次使用
    WORKDIR

    FROM node:14.8.0-alpine
    WORKDIR /app
    ENV PORT 8080
    COPY app ./
    WORKDIR /app/server
    CMD [ "yarn", "start-server" ]
    WORKDIR /app
    

    您可以多次使用
    WORKDIR

    FROM node:14.8.0-alpine
    WORKDIR /app
    ENV PORT 8080
    COPY app ./
    WORKDIR /app/server
    CMD [ "yarn", "start-server" ]
    WORKDIR /app
    

    WORKDIR被设置为/app,所以当您开始时,它就是您结束的地方。您可能想在CMD前面添加另一个
    WORKDIR/app/server
    ?WORKDIR被设置为/app,所以当您开始时,它就是您结束的地方。您可能想在CMD前面添加另一个
    WORKDIR/app/server