Tag: dockerfile

Git的Dockerfile策略

使用Dockerfile将私有Git存储库克隆到Docker容器中的最佳策略是什么? 优点缺点? 我知道我可以在Dockerfile上添加命令,以便将我的私有存储库克隆到Docker容器中。 但是我想知道人们在这个案例中使用了哪些不同的方法。 这不在Dockerfile最佳实践指南中。

docker集装箱通信

我正在努力实现以下目标: 有多个docker容器执行一些时期的任务 有一个组件在本地主机上运行,​​除了其他任务pipe理(启动/停止)的容器 有时在容器中运行的服务需要发布结果。 因此它们使用ZMQ绑定到一个暴露的端口并发送结果。 运行在本地主机上的组件订阅特定的端口并在其上侦听。 问题是每个容器都需要localhostnetworking上的特定/不同的端口来绑定和发布结果。 这意味着我需要听所有的集装箱港口。 是否有可能听一个单一的端口,所有的容器在那里发布他们的工作? 如果不是,那么选项是什么? 谢谢

使用Docker Compose将JSON文件读入环境variables

我用Meteorddocker化了一个Meteor-app,而且工作正常,我的问题是我想把一些设置传递给应用程序。 Meteord不会像设置文件那样启动应用程序,因为它通常会为应用程序提供设置( meteor –settings file.json )。 这也可以用名为METEOR_SETTINGS variables来METEOR_SETTINGS 。 因为我想让webapp与其他服务一起运行,所以我使用了Docker Compose。 我有我的settings.json文件,我想读作为一个环境variables,所以像这样: environment: – METEOR_SETTINGS=$cat(settings.json) 这虽然不起作用。 我怎样才能让Dockerdynamic创build这个基于JSON文件的环境variables?

如何使用docker-py中的副本将文件从容器复制到主机

我正在使用docker-py。 我想从Docker容器复制文件到主机。 从docker-py文档: copy Identical to the docker cp command. Get files/folders from the container. Params: container (str): The container to copy from resource (str): The path within the container Returns (str): The contents of the file as a string 我可以创build容器并启动它,但无法获取从容器复制到主机的文件。 有人能帮我指出我是否失去了什么? 我有我的docker集装箱/mydir/myshell.sh我试图复制到主机。 >>> a = c.copy(container="7eb334c512c57d37e38161ab7aad014ebaf6a622e4b8c868d7a666e1d855d217", resource="/mydir/myshell.sh") >>> a <requests.packages.urllib3.response.HTTPResponse object at 0x7f2f2aa57050> >>> […]

在文件更改时重buildDocker容器

为了运行ASP.NET Core应用程序,我生成了一个dockerfile,它构build应用程序,并复制容器中的源代码,该容器由Git使用Jenkins提取。 所以在我的工作区中,我在dockerfile中执行以下操作: WORKDIR /app COPY src src 当Jenkins使用Git正确更新我的主机上的文件时,Docker不会将其应用于我的映像。 我的基本build设脚本: #!/bin/bash imageName=xx:my-image containerName=my-container docker build -t $imageName -f Dockerfile . containerRunning=$(docker inspect –format="{{ .State.Running }}" $containerName 2> /dev/null) if [ "$containerRunning" == "true" ]; then docker stop $containerName docker start $containerName else docker run -d -p 5000:5000 –name $containerName $imageName fi 我尝试了不同的东西,例如–rm和–no-cache参数,以及在构build新容器之前停止/移除容器。 我不确定我在这里做错了什么。 看来docker正在更新正确的图像,因为COPY src […]

AngularJS的可重用Docker镜像

我们有一个AngularJS应用程序。 我们为它写了一个dockerfile,所以它可以在每个系统上重用。 dockerfile不是最好的做法,它可能是一些奇怪的构build(构build和托pipe在同一个文件中),但它只是创build在每个开发人员的每台PC上本地运行我们的angularjs应用程序。 Dockerfile: FROM nginx:1.10 … Steps to install nodejs-legacy + npm RUN npm install -g gulp RUN npm install RUN gulp build .. steps to move dist folder 我们用docker build -t myapp:latest .构build我们的镜像docker build -t myapp:latest . 每个开发人员都可以运行我们的应用程序与docker run -d -p 80:80 myapp:latest 但现在我们正在开发其他后端。 所以我们在DEV中有一个后端,在UAT中有一个后端,所以我们需要在/config/xx.json使用不同的URL { … "service_base": "https://backend.test.xxx/", … } 我们不希望每次更改该URL,重build图像并启动它。 我们也不想声明一些可以在那里使用的URL(dev,uat,prod,..)。 […]

在Sublime Text中高亮Dockerfile的语法?

是否有可能在Sublime Text中为Dockerfile获取语法高亮?

使用Pytest,Selenium Grid和Docker创buildtesting基础架构

基于这篇文章 ,我成功地创build了可扩展的selenium网格。 然后,我想运行我的testing套件(用Python编写),使用Pytest进入该网格。 我是Docker的新手,并试图find将我的testing过程迁移到微服务体系结构的最佳方法。 本质上,我想让开发人员能够在PC上本地设置完整的testing基础架构。 所以,我有4个Dockerfiles和1 个docker-compose.yml 。 BASE dockerfile: FROM ubuntu ENV SEL_VERSION 2.44.0 # Update repos for Java RUN apt-get update -qqy \ && apt-get -qqy –no-install-recommends install \ software-properties-common \ && rm -rf /var/lib/apt/lists/* RUN add-apt-repository -y ppa:webupd8team/java RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections RUN echo debconf shared/accepted-oracle-license-v1-1 seen true […]

Yum安装将无法在boot2docker主机上工作?

我对Docker比较陌生。 我使用docker-machine create -d启动了boot2docker主机。 pipe理连接到它,并运行几个命令。 都好。 但是,当试图创build一个基本的http服务器映像,基于centos ..“yum安装”只是失败。 不pipe包装是什么。 这是我的Docker文件: FROM centos MAINTAINER Amir #Install Apache RUN yum install httpd 运行时:docker build。 它开始build立的形象,一切看起来不错,但随后失败: 您的交易已保存,重新运行它:yum load-transaction /tmp/yum_save_tx.2015-09-18.15-10.q5ss8m.yumtx安全警告:您正在从Windows构build一个Docker镜像对非Windows Docker主机。 添加到构build上下文的所有文件和目录将具有“-rwxr-xr-x”权限。 build议仔细检查并重置敏感文件和目录的权限。 命令'/ bin / sh -c yum install httpd'返回了一个非零的代码:1 任何想法我做错了什么? 提前致谢。

确定泊坞窗镜像的OS分布

我需要确定任何泊坞窗图像的操作系统分布名称。 我可以标记Ubuntu的最新作为image1:最新的 ,但我应该能够得到它的发布信息image1:最新的时候。 为了达到这个目的,我使用下面提到的命令来确定操作系统版本: $ docker tag ubuntu image1 $ $ docker run -it image1 /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python3 test.py" ('Ubuntu', '14.04', 'trusty') $ 但是,这依赖于图像是否具有python2或python3 。 它在Ubuntu的12.04失败,我需要在那里使用python2。 $ docker run -it ubuntu /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python3 test.py" ('Ubuntu', '14.04', […]