如何调用作为Docker容器在Linux机器上部署的Rest-Endpoint

抱歉,如果重复:我有一个docker集装箱是一个Node.js服务。 我想从同一台linux机器上testing那个服务的端点。我正在使用curl命令testing端点。我得到了curl: (56) Recv failure: Connection reset by peer

这是我的Dockerfile

 FROM ubuntu ARG ENVIRONMENT ARG PORT RUN apt-get update -qq RUN apt-get install -y build-essential nodejs npm nodejs-legacy vim RUN mkdir /database_service ADD . /database_service WORKDIR /database_service RUN npm install -g express RUN npm install -g path RUN npm cache clean EXPOSE $PORT ENTRYPOINT [ "node", "server.js" ] CMD [ $PORT, $ENVIRONMENT ] 

这是我的configuration文件:

 module.exports = { database: { username: 'someusername', password: 'somepassword', host: '13.68.86.237', port: 27017, name: 'admin' }, "sandbox_config": { "commerce.api.endpoint":"sandbox_ep", "eurekaInstance":{ "instanceId":'10.71.9.40:database-service:'+process.env.PORT || 9200, "hostName": 'database-service', "app": 'database-service', "ipAddr": '10.71.9.40', "port": { '$': process.env.PORT || 9200, '@enabled': 'true' }, "securePort": { '$': 443, '@enabled': 'false' }, "dataCenterInfo": { '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo', "name": 'MyOwn' }, "homePageUrl": 'http://database-service:'+process.env.PORT || 9200+'/', "statusPageUrl": 'http://database-service:'+process.env.PORT || 9200+'/info', "healthCheckUrl": 'http://database-service:'+process.env.PORT || 9200+'/health', "vipAddress": 'database-service', "secureVipAddress": 'database-service', "isCoordinatingDiscoveryServer": 'false', "leaseInfo": { "renewalIntervalInSecs": 60000, "durationInSecs": 60000, } }, "eurekaConfig":{ "host":'eureka-server', "port":8761, "servicePath":'/eureka/apps/' } } }; 

请build议是否有一些错过这里或错误的命令。

这是错误捕捉

如果你运行一个docker image inspect image_tag你会发现你的CMD指令中插入的variables在容器运行时才会被parsing。

在您的ARG指示后添加

 ENV PORT $PORT ENV ENVIRONMENT $ENVIRONMENT 

确保默认环境variables在运行时可用