Tag: compose

在开发人员环境中,在Docker容器上运行子域的简单方法

我有docker集装箱生产。 在“开发模式”中,它使用docker-compose来启动依赖关系并将其链接起来。 容器内的应用程序运行一个站点( mycoolsite.tld )及其子域(如api.mycoolsite.tld )。 我们所做的就是使用mycoolsite.dev & api.mycoolsite.dev ,使用configurationvariables覆盖应用程序位置&dnsmasq,将*.mycoolsite.dev覆盖为127.0.0.1以便集成testing可以从api.mycoolsite.dev下载。 有没有一种很好的方式来利用docker构成来实现呢? 我不想在主容器中运行额外的进程。 我不确定如何链接dnsmasq容器,并将其设置为正确指向原始的容器。 我会愿意指定子域名列表,并通过mount来覆盖/etc/hosts ,但是我不能这样做,因为docker-compose覆盖了带有链接的主机。 我也发现指定附加的hosts文件是棘手的。 我想解决这个问题的原生Linuxdocker,以及使用docker守护进程通过boot2docker虚拟机代理。

在安装Kerberos时,Docker组合会挂起

我正在使用下面的文件为一个小型节点项目。 # dockerfile FROM node:0.12.6 ADD . /code WORKDIR /code RUN npm i # docker-compose.yaml web: build: . command: npm start environment: EXPRESS_PORT: 5000 ports: – "5000:5000" volumes: – .:/code links: – redis – mongo redis: image: redis mongo: image: mongo docker-compose up按照正常方式docker-compose up收益,直到我的一个依赖mongoose试图安装Kerberos: kerberos@0.0.12 install /code/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos (node-gyp rebuild 2> builderror.log) || (exit 0) 在这之后,安装好像挂了15分钟以上。 […]

无法从我的Mac中看到音量的内容

我有以下docker组成文件 dataonly: image: busybox volumes: – /Users/xxx/work/personal/data-only/mongo:/data command: "true" mongo: image: tutum/mongodb volumes_from: – dataonly environment: – AUTH=no – JOURNALING=yes ports: – "27017:27017" – "28018:28018" 当我用这个configuration运行docker-compose时,我可以看到在我的Mac上创build了文件夹/Users/xxx/work/personal/data-only/mongo/db但是它是空的。 如果我进入mongo容器并检查/data/db文件夹的内容,我可以在那里看到所有与MongoDB相关的文件。 如果我在mongo容器中的/data/db文件夹中touch testfile ,文件不会出现在我的Mac上,但是如果我在容器中的/data文件夹中touch testfile ,我可以在/Users/xxx/work/personal/data-only/mongo 。

在docker上持久的postgres

docker工人开始使用我的数据库容器持久容器存储。 我认为创build一个postgres-TeamCity实例将是一个简单的任务。 然而,在运行kitematic和docker-machine的osx上,在引用本地文件系统时有一些关于权限的问题。 使用持久容器似乎解决了这个问题。 尝试运行docker-compose up -d以下内容: teamcitydb: image: postgres:9.3 ports: – "5432:5432" environment: – POSTGRES_USER=teamcity – POSTGRES_PASSWORD=mysecretpassword volumes_from: – pgdata pgdata: image: cogniteev/echo command: echo 'Data Container for PostgreSQL' volumes: – /var/lib/postgresql/data 似乎工作,但是如何创build这里提到的DB架构? https://hub.docker.com/r/sjoerdmulder/teamcity/如果我手动执行: SETUP_TEAMCITY_SQL="create role teamcity with login password 'teamcity';create database teamcity owner teamcity;" POSTGRES_PASSWORD=mysecretpassword docker run -it –link teamcity_teamcitydb_1:postgres –rm -e "SETUP_TEAMCITY_SQL=$SETUP_TEAMCITY_SQL" […]

多个docker撰写文件,并指定env_file

我正在使用docker创build基本configuration并对其进行扩展的项目。 我的基地docker-compose.yml文件有links ,所以我不能在扩展撰写文件中使用extends参数。 相反,我将多个docker-compose文件指定给docker-compose工具。 这是工作得很好,除了看起来.env文件的path总是相对于指定的第一个docker-compose.yml文件,这打破了我的预期function。 例: docker-compose.yml (生活在一个共同的位置,让我们说~/base-app ) web: build: . volumes: – .:/usr/src/app ports: – "80:3000" links: – redis redis: image: redis:latest ports: – "6379:6379" 现在在一个孩子的应用程序,我想指定一个command和env_file : 泊坞窗,compose.override.yml web: environment: NODE_ENV: development env_file: .env command: node server.js 当我运行这个设置时,我会使用下面的命令: docker-compose -f ~/base-app/docker-compose.yml -f docker-compose.override.yml up 这个效果很好,只要我不指定一个env_file 。 但是在指定了env_file ,我会得到如下错误: ERROR: Couldn't find env file: […]

将我的自定义泊坞窗容器链接到另一个自定义容器

我有两个Rails docker容器: 第一个是前端应用程序(container1),另一个是后端API(container2)。 前端可以通过http://0.0.0.0:3000访问。 前端通过http://0.0.0.0:5000连接到后端API。 我用这个来启动将它连接到后端的前端 docker run –name=frontend –publish=3000:3000 –link=postgis:postgres –link=backend:backend –volume=/var/app:/app –tty=false –interactive=false –detach=true frontend 后端正常运行 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd4521524caf backend "/bin/bash -l -c /setu" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp backend 我观察到的链接后端在/ etc / hosts中添加了一个条目 172.17.0.712 cd4521524caf 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 […]

在Docker容器中的Pycharm 5远程Python解释器:非零退出代码

我使用docker-compose来启动不同的容器,其中有一个运行我的python应用程序(基于自定义图像,基于官方的python:3.5.1容器)和其他包含数据库和卷的应用程序。 我想从Pycharm的容器中使用解释器(因为在版本5中添加的一个很酷的function是远程的Docker解释器)。 我试图使用“项目解释器>添加>远程>docker”,并指定以下内容: 机器名称 :默认(是主机上唯一的机器) 图片名称 :运行docker ps代表应用程序容器显示的名称(我尝试过使用和不使用“ :latest ”后缀) python解释器path :我试着默认的“ python ”比指定完整的path(由容器中的which python返回的) 但一旦点击确定,Pycharm无法find解释器,它唯一的输出是:“ 非零退出代码 ”! 我真的想避免使用SSH …所以,是否有人能够连接到一个Docker解释器,并能解释我该怎么做,我该怎么做? ps:我也尝试玩端口2376(一个Pycharm用来连接到容器),但它似乎已经自动暴露的docker,因为我得到一个错误,试图明确暴露它(EXPOSE 2376在Dockerfile +港口: – “ 2376:2376“在docker写作) 更新: 通过忽略问题并点击“确定”,我得到一个更有用的信息(重点是我的): 无法为docker:// myapp:latest / python运行generator3.py,退出代码1,stderr:—– / opt / webapp / src应该是本地项目的path,或者是以 svn + ,git +,hg +或bzr + —– 这让我无语了…为什么它应该抱怨容器中的path? (/ opt / webapp / src是我的应用程序的源代码位于容器中的位置…我怎样才能在容器中引用主机项目?!)也许我误解了远程解释器function,按照我的意愿使用它,在我的情况下是从主机上运行容器testing。 (而不是连接到它使用docker exec.. )。 […]

如何使用Docker容器启用MongoDB访问控制?

我使用一个Dockerfile和一个docker-compose.yml来启动两个服务: 我的应用服务 一个MongoDB服务 我docker-compose.yml : web: build: . ports: – "80:3000" environment: NODE_ENV: production links: – mongo mongo: image: mongo command: –smallfiles ports: – "27017:27017" 我似乎无法弄清楚如何控制对MongoDB容器的访问(如使用–auth标志),以及如何使用用户名/密码进行外部访问(比如GUI)。 在Docker自动构build之后,这两个服务通过一个webhook通过Tutum重新部署。 换句话说,我不想每次都手动configuration数据库。 如何控制访问又名设置一个根/pipe理员用户使用Dockerfile或docker-compose.yml文件来保护我的MongoDB数据库?

Docker文件权限与卷,Boot2docker和Virtualbox

我正在尝试使用Dockerfile和Docker在Mac Yosemite上使用Boot2docker / Virtualbox进行本地安装Apache Web项目。 除了一件事之外,一切都可以工作 – 在已安装卷上的文件权 我需要一些文件夹可由PHP写入,我无法find一种方法来更改我的版本中的权限。 这是我的Dockerfile: FROM ubuntu:latest RUN apt-get update RUN apt-get -y upgrade # Install apache, PHP, and supplimentary programs. curl and lynx-cur are for debugging the container. RUN DEBIAN_FRONTEND=noninteractive apt-get -y install apache2 libapache2-mod-php5 php5-mysql php5-gd php-pear php-apc php5-curl curl lynx-cur # Enable apache mods. RUN a2enmod php5 […]

如何将odoo和postgres与docker组合在一起?

我一直在尝试一段时间,我无法得到这个工作。 我想通过docker-compose连接odoo(openERP)和postgres。 这是我的yml: # Odoo server app: build: ./containers/odoo ports: – "8000:8069" links: – db environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword # PostgreSQL server db: build: ./containers/postgres environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword Dockerfiles就像这样: FROM library/odoo # For customizing purposes 我运行它和数据库名称和密码select页面apears和工作正常。 初始化过程之后,主页几乎空白 。 我该如何解决? 提前致谢。