Jenkins, Docker, Kubernetes, AWS EKS: RUN npm install либо зависает, либо выдает EAI_AGAIN - PullRequest
2 голосов
/ 29 марта 2019

Прежде всего, я совершенно новичок в развертывании сборок CICD.

Я начал с успешной установки Jenkins X в кластере AWS EKS через это руководство .

Я могу запустить конвейер через GitHub и успешно строится на обычном быстром старте jx.

Проблемы возникли, когда я начал загружать свое экспресс-приложение для узлов.

На базе альпийских узлов мой dockerfileВыглядело это так:

FROM node:10.15.3-alpine
RUN mkdir -p /app/node_modules && chown -R node:node /app
WORKDIR /app
COPY package*.json ./
RUN npm ci --prod
FROM alpine:3.7
COPY --from=0 /usr/bin/node /usr/bin/
COPY --from=0 /usr/lib/libgcc* /usr/lib/libstdc* /usr/lib/
WORKDIR /app
COPY --from=0 /app .
EXPOSE 3000
CMD ["node", "server.js"]

И оно завершилось с ошибкой:

Step 5/14 : RUN npm ci --prod
 ---> Running in c7f038a80dcc
[91mnpm[0m[91m ERR! code EAI_AGAIN
[0m[91mnpm ERR! errno EAI_AGAIN
[0m[91mnpm ERR![0m[91m request to https://registry.npmjs.org/express/-/express-4.16.4.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443
[0mtime="2019-03-28T08:26:00Z" level=fatal msg="build failed: building [community]: build artifact: The command '/bin/sh -c npm ci --prod' returned a non-zero code: 1"

Я попытался использовать не альпийскую базу, и это было так:

FROM node:10-slim
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
ENV PORT 3000
EXPOSE 3000
CMD ["npm", "start"]

Но тогда проблема заключалась в том, что сборка зависала (или занимает очень много времени), когда она достигает шага установки RUN npm.

Я искал возможные ответы и дублирующие вопросы, но безрезультатно.Поэтому я в последний раз обратился к нему с вопросом.

Я не имею понятия, что происходит честно.

1 Ответ

2 голосов
/ 06 мая 2019

Мне удалось решить эту проблему, включив сеть Docker Bridge при загрузке рабочих узлов EKS.

#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh --enable-docker-bridge true 'your-cluster-name'

Подробнее в этом выпуске Github: https://github.com/awslabs/amazon-eks-ami/issues/183

...