在项目上下文中,我必须在Docker容器中运行sbt应用程序。 这就是为什么我创建了Dockerfile的原因,但是当我尝试构建容器时,出现了一个错误,但我不明白为什么。
我的代码如下:
FROM centos:latest
RUN curl -LO "https://nodejs.org/dist/latest/node-v10.7.0-linux-x64.tar.gz" && tar -xzf node-v10.7.0-linux-x64.tar.gz -C /usr/local --strip-components=1 && rm node-v0.12.5-linux-x64.tar.gz
ADD app/abc/
WORKDIR /app
RUN npm install
RUN npm run build
CMD sbt plt/run
EXPOSE 9001
那是错误:
Sending build context to Docker daemon 745.3MB
Step 1/8 : FROM centos:latest
---> 49f7960eb7e4
Step 2/8 : RUN curl -LO "https://nodejs.org/dist/latest/node-v10.7.0-linux-x64.tar.gz" && tar -xzf node-v10.7.0-linux-x64.tar.gz -C /usr/local --strip-components=1 && rm node-v0.12.5-linux-x64.tar.gz -o StrictHostKeyChecking=no
---> Running in d863c7cb398e
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: nodejs.org; Unknown error
The command '/bin/sh -c curl -LO "https://nodejs.org/dist/latest/node-v10.7.0-linux-x64.tar.gz" && tar -xzf node-v10.7.0-linux-x64.tar.gz -C /usr/local --strip-components=1 && rm node-v0.12.5-linux-x64.tar.gz -o StrictHostKeyChecking=no' returned a non-zero code: 6
有人知道这是什么问题吗?
非常感谢。
FM
答案 0 :(得分:1)
消息returned a non-zero code
表示命令失败。
如果您阅读上一行,则curl
返回了以下错误:Could not resolve host: nodejs.org; Unknown error
。
这意味着在构建期间,您无法访问“ nodejs.org”主机名。
我也无法使用您的命令行(我有同样的错误)。您应该遵循their documentation for installing Node.js for CentOS:
RUN curl --silent --location https://rpm.nodesource.com/setup_10.x | bash - && yum -y install nodejs
如果您可以使用CentOS以外的其他系统,则可以使用Node.JS base image from hub.docker.com。 在您的Dockerfile中:
FROM node:8 (or another version)