Tag: docker docker

Docker for Mac主机networking访问

我正在运行mac build的最新docker,并且有许多基于docker-compose的应用程序正在运行 – 所有接受的都是从本地networking调用的。 我现在试图实现一个需要networking访问的node.js应用程序来扫描主机的networking以及响应端口5005。 任何人都可以给我看一个docker-compose.yml文件,这将允许以下networking: 本地networking:192.168.123 / 24路由器192.168.123.1 适用于Mac的Docker在我的Macbook上以192.168.123.118运行 我的networking内部http://192.168.123.118:5005应该对容器的节点请求作出响应。 容器需要扫描本地networking来寻找服务。 我尝试了一个或两个接口的默认,网桥和主机networking的组合,只是感到困惑。 一个容器能否真正成为主机networking的一部分? 我似乎记得,当在virtualbox上运行docker时,这是可以实现的。 我试图configuration的实际代码是https://github.com/jishi/node-sonos-http-api我不认为有代码的问题,只是我想创build的环境。 我试图运行的项目是Sonos控制器应用程序: 这里是我的Dockerfile和docker-compose.yml文件以及构buildSonos控制器应用程序的命令 mkdir sonos cd sonos git clone https://github.com/jishi/node-sonos-http-api sonos 泊坞窗,compse.yml version: '2' services: sonos: build: sonos network_mode: host SONOS / Dockerfile FROM node:4-onbuild EXPOSE 5005 在此之后,我可以启动控制器: docker-compose stop; docker-compose-build; docker-compose up; 输出是: Recreating sonos_sonos_1 Attaching to sonos_sonos_1 sonos_1 […]

Supertest在黄瓜延迟

我在黄瓜步骤文件中使用supertest向Docker中运行的API发出请求。 另外,我正在使用带有示例的场景大纲,以便请求被执行4次。 编辑:我发现,在黄瓜的第一个请求,我在我的docker日志中得到这个错误:“未能build立9P连接:抓住底层stream的EOF”。 但它只发生一次,从来没有从浏览器或邮递员。 given.js: const request = require('supertest'); module.exports = function givens() { this.Given(/^then system is active$/, function (callback) { this.request = request.agent('http://localhost:8787'); callback(); }); } 然后: module.exports = function whens() { this.When(/^the client requests a list of questions with the parameters of "([^"]*)" and "([^"]*)" and "([^"]*)" and "([^"]*)" and "([^"]*)" and "([^"]*)"$/, […]

DRYconfigurationDocker构build和应用程序

首先,这比我想象的要长得多,tl; dr; 我怎样才能让我的configurationDRY与docker(我假设与环境variables) 我正在开发一个mongodb数据库的node.js服务器,我正在切换到docker(希望)简化我的环境,并保持我的服务器一致。 让我开始说,我绝对不了解整个docker – 集装箱生命周期,但我正在学习。 经过大量的search后,我找不到解决scheme。 我正在使用适用于Windows的Docker和Hyper-V。 ( docker version在底部) 所以,我想能够configuration 数据库名称 数据库用户 数据库密码 应用端口 和其他一些事情 并允许这些configuration的值在几个地方使用,包括 Docker构build阶段(设置数据库) 节点应用程序(连接到数据库) 什么是能够设置数据库名称,用户和传递一次,并使用它来启动容器中的数据库,然后连接到它,每当容器被启动的最佳方式是什么? 当前设置 目前我有一个docker-compose文件,它是以下(./docker-compose.yml) version: "2" services: myapp: image: node:boron volumes: – ./dist:/usr/src/app working_dir: /usr/src/app command: sh -c 'npm install; npm install -g nodemon; nodemon -e js app.js' ports: – "9021:9021" depends_on: – mongo networks: […]

在docker中保持node_modules最新

我正在与一个在Docker和Node中构build的回购团队合作。 当别人安装节点包时,我git pull这些改变git pull package.json和package-lock.json 。 不过,我不能只运行docker-compose build ,然后docker-compose up来安装这些新的节点包。 我不得不第一个docker-compose down -v 。 这是因为我们正在使用卷来存储节点模块。 我们并不拘束于此,坦率地说,只是将模块存储在docker图像层中。 但是,当我们绑定应用程序的体积( docker-compose.yml – .:/app )时,图像中的node_modules文件夹会被映射。 这感觉就像我们采取了错误的做法,但这似乎是普遍接受的做法。 我们的设置基于“ 在Docker中构build节点应用程序的教训 ” 我们的Dockerfile : FROM node:8.4.0 WORKDIR /app COPY package.json package-lock.json ./ RUN npm install –loglevel=error –progess=false COPY . /app/ 我们docker-compose.yml : — version: '2.1' services: main: build: context: . volumes: – […]

PostgresclosuresDocker组装后立即?

这里我使用postgresql图像和节点的官方形象 ,我docker-compose.yml文件看起来像 version: '2' services: postgres: restart: always image: sameersbn/postgresql:9.6-2 ports: – "5432:5432" environment: – DB_USER=shorturl – DB_PASS=shorturl – DB_NAME=shorturl web: build: . ports: – "4000:4000" volumes: – .:/shortlr depends_on: – postgres command: ["./wait-for-it.sh","postgres:5432", "–", "npm", "start"] 当我运行docker-compose up然后我的日志看起来像 shubham@shuboy2014:~/shortlr$ docker-compose up Recreating shortlr_postgres_1 … Recreating shortlr_postgres_1 … done Recreating shortlr_web_1 … Recreating shortlr_web_1 … […]