2016-02-12 29 views
5

Tôi đang triển khai một số dịch vụ node.js vào hệ thống công ty trong vùng chứa docker. Dockerfiles của tôi cho các dịch vụ này là rất cơ bản, với ngoại lệ mà tôi đang thiết lập các biến môi trường proxy:Cài đặt NPM không thành công trong vùng chứa Docker nhưng chạy trên máy chủ w/proxy công ty

FROM node:4.2.3 

ADD . /src 

WORKDIR /src 

ENV http_proxy http://proxy.gc.corp.com:8888/ 
ENV https_proxy http://proxy.gc.corp.com:8888/ 
ENV HTTP_PROXY http://proxy.gc.corp.com:8888/ 
ENV HTTPS_PROXY http://proxy.gc.corp.com:8888/ 


RUN npm install --production 

EXPOSE 3000 

CMD npm start >> /log/eva_web_api 

Khi tôi xây dựng hình ảnh của tôi từ tập tin này, tôi nhận được lỗi sau từ NPM:

error on last attempt: Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND proxy.gc.corp.com proxy.gc.corp.com:8888

Tuy nhiên khi tôi thực hiện cài đặt NPM trên máy chủ (có cài đặt Node.js cũng như Docker), cài đặt NPM hoạt động như bình thường và hoàn tất mà không gặp vấn đề gì. Một trong những máy chủ lưu trữ tôi có những biến ENV tương tự thiết lập như tôi xác định trong Dockerfile của tôi.

Bất cứ ai cũng có ý tưởng về những gì đang diễn ra ở đây, tôi có một vé mở với nhóm mạng của tôi phụ trách proxy nhưng họ vẫn chưa được giúp đỡ.

+1

Vùng chứa của bạn không thể phân giải proxy.gc.corp.com qua dns. Bạn có thể giải quyết bất kỳ địa chỉ nào trong vùng chứa đang chạy không? – Matt

+0

Không, tôi không thể, bạn nói đúng. Tại sao nó khác với trong vùng chứa docker so với các cuộc gọi http giống nhau đang được thực hiện trên máy chủ? Cả hai hệ điều hành này đều là Ubunutu 14.04, tôi đoán là thùng chứa docker I.P. hay gì đó. –

+0

Khó nói, bình thường nên hoạt động. Phiên bản docker nào? Các thùng chứa của bạn '/ etc/resolv.conf' nói gì? Bạn có thể ping bất cứ điều gì bên ngoài từ container của bạn? – Matt

Trả lời

Các vấn đề liên quan