运行 npm 从 Dockerfile 开始作为 ENTRYPOINT
run npm start as ENTRYPOINT from the Dockerfile
我正在尝试构建一个 docker 文件,我刚刚在其中启动一个 http-server。
我的 docker 文件是:
FROM ubuntu
RUN apt-get update
RUN apt-get install -y nodejs && apt-get install -y npm
COPY testing /testing
RUN cd testing
RUN npm install
ENTRYPOINT npm start
这里testing是项目目录,由index.html
文件和package.json
.
组成
我的package.json是:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "http-server -a 0.0.0.0 -p 5500"
},
"author": "",
"license": "ISC",
"dependencies": {
"concurrently": "^5.0.2",
"http-server": "^0.12.1"
}
}
在我的本地机器上,服务器工作正常。我认为 cd testing
命令不合适并且 npm install
没有使用 package.json
文件。
docker 图像在图像 ID 下形成 - 6260786586cc
通过命令 运行 图像时的错误是:
使用 WORKDIR
指令代替 cd
。
WORKDIR testing
Dockerfile 中的每条指令在构建期间在单独的容器中执行。因此 运行 cd
在构建期间更改目录不起作用。
我正在尝试构建一个 docker 文件,我刚刚在其中启动一个 http-server。 我的 docker 文件是:
FROM ubuntu
RUN apt-get update
RUN apt-get install -y nodejs && apt-get install -y npm
COPY testing /testing
RUN cd testing
RUN npm install
ENTRYPOINT npm start
这里testing是项目目录,由index.html
文件和package.json
.
我的package.json是:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "http-server -a 0.0.0.0 -p 5500"
},
"author": "",
"license": "ISC",
"dependencies": {
"concurrently": "^5.0.2",
"http-server": "^0.12.1"
}
}
在我的本地机器上,服务器工作正常。我认为 cd testing
命令不合适并且 npm install
没有使用 package.json
文件。
docker 图像在图像 ID 下形成 - 6260786586cc
通过命令 运行 图像时的错误是:
使用 WORKDIR
指令代替 cd
。
WORKDIR testing
Dockerfile 中的每条指令在构建期间在单独的容器中执行。因此 运行 cd
在构建期间更改目录不起作用。