OpenStack上的Docker。 npm在获取之后和生命周期之前卡住了

时间:2018-05-23 08:31:43

标签: docker npm openstack npm-install

背景: 目标是将Angular网站停靠并在OpenStack VM上运行。有很多工作要对nmp进行码头化,所以我的同事们发现了我们使用过的已准备好的码头图像。创建Angular网站以适应此docker所基于的npm node.js版本。

问题: 我们在Windows计算机上运行的Ubuntu VM上开发代码,本地工作正常。当我们尝试在OpenStack ubuntu VM上构建docker镜像时会出现问题。我们首先认为这是一个网络问题,但经过一些调查我们发现npm确实会获取包并获得它们。获取所有包后,它只是停止并且没有响应,但是可以通过按 CTRL + C 来取消。在本地VM上,它在获取所有包并在获取的包上执行生命周期之后继续。这永远不会在Open Stack VM上完成。

Dockerfile

FROM node:8-alpine

RUN echo http://mirror.yandex.ru/mirrors/alpine/v3.5/main > /etc/apk/repositories; \
    echo http://mirror.yandex.ru/mirrors/alpine/v3.5/community >> /etc/apk/repositories
RUN apk update && apk add nginx

COPY app-gui/package.json app-gui/package-lock.json ./

## RUN npm config set registry https://registry.npmjs.org/ && npm ping [--registry https://registry.npmjs.org/]

RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
RUN npm config set loglevel info 

## Storing node modules on a separate layer will prevent unnecessary npm installs at each build
RUN npm i && mkdir /ng-app && cp -R ./node_modules ./ng-app

WORKDIR /ng-app
COPY bletf-gui/ .

#Setup nginx
RUN cat ./nginx/default.conf
COPY app-gui/nginx/default.conf /etc/nginx/conf.d
RUN mkdir -p /usr/share/nginx/html && mkdir -p /run/nginx

CMD sed -i -e 's|\$HOST|'"${API_HOST}"'|g' src/environments/environment.prod.ts && \
    $(npm bin)/ng build --prod && cp -R ./dist/* /usr/share/nginx/html/ && nginx -g "daemon off;"

如果还有其他需要的信息,我会尝试提供。

1 个答案:

答案 0 :(得分:0)

检查Docker容器中的MTU值,并将其与主机MTU值进行比较。

ifconfig eth0 | grep mtu

您可以从Docker守护程序配置中更改mtu的配置,也可以在容器级别更改以相互匹配

从Docker守护程序级别 / usr / bin / dockerd -H fd:// --mtu = 1450

在容器级别 泊坞窗运行-it --cap-add = NET_ADMIN IMAGE_NAME #ifconfig eth0 mtu 1400