Tag: 文件

如何在Docker构build中使用COPY命令?

我正在尝试执行一些自动化,同时build立我的docker形象。 以下是我在Windows 8,Kitematic,Virtual Box中运行的代码: FROM node:6 # Create directory RUN mkdir -p /tempDir && mkdir -p /tempDir/built && mkdir -p /data # Setup build environment COPY . /tempDir RUN npm install -g gulp typings # Build from source WORKDIR /tempDir RUN npm install && typings install && gulp build 到目前为止,一切都很好,成功地将我的脚本打包到/ tempDir / built目录中的javascript。 我打开我的容器,它看起来像这样: tempDir/gulpfile.js […]

操作方法:Dockerfile层重用/引用

我想创build几个图像,其中每个dockerfile将包含一些常见的图层。 它的所有图像都是混合的,没有一致的顺序。 例如,有些需要在它们上面有java,我想把下面几行(从官方的java 8 dockerfile中取出)定义为一个将在其他dockerfiles中引用的构build块(层)。 在某些情况下,它可能是我想要重复使用的多个图层 – 使得这个需求在本质上是recursion的(由构build块构build的构build块)。 RUN \ echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ add-apt-repository -y ppa:webupd8team/java && \ apt-get update && \ apt-get install -y oracle-java8-installer && \ rm -rf /var/lib/apt/lists/* && \ rm -rf /var/cache/oracle-jdk8-installer Docker今天支持吗? 这是一个很好的做法,例如像Java一样分别安装,或者我应该将它与其他安装(保持图像最小)合并? 围绕这种情况的最佳做法是什么? ===========更新============== 看起来像引用/包括的function不被支持。 但我仍然不确定最佳做法… @Sri指出了最佳实践: https ://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run 鼓励在所有软件包安装中使用“运行apt-get update && apt-get […]

在Dockerfile中parsing文件

是否有可能parsing构build上下文中的文件来收集信息? 例如,这样做会很好: EXPOSE `cat config.conf | <more commands to get the port to expose>` configuration文件属于被容器化的应用程序,并且有一些端口必须是可configuration的,这也意味着它必须以某种方式从Dockerfile访问。 任何方式来完成这个?

如何在docker build中提供和使用命令行参数?

我有一个Dockerfile,如下所示: FROM centos:centos6 MAINTAINER tapash ###### Helpful utils RUN yum -y install sudo RUN yum -y install curl RUN yum -y install unzip #########Copy hibernate.cfg.xml to Client ADD ${hibernate_path}/hibernate.cfg.xml /usr/share/tomcat7/webapps/roc_client/WEB-INF/classes/ 我需要一个命令行参数在$ hibernate_path中指定的docker build期间传递。 我该怎么做呢?

如何通过terminal或DockerFile来设置Docker容器的RAM内存

我需要一个具有6GB内存的Docker容器。 我试过这个命令: docker run -p 5311:5311 –memory=6g my-linux 但是它不起作用,因为我login到Docker容器,并检查了可用的内存量。 这是显示只有2GB可用的输出: >> cat /proc/meminfo MemTotal: 2046768 kB MemFree: 1747120 kB MemAvailable: 1694424 kB 我尝试设置首选项 – >在Docker应用程序中前进。 如果我设置6GB的,它的工作原理…我的意思是,我有一个6GB的MemTotal容器。 这样我所有的容器将有6GB … 我想知道如何使用一些命令或者在Docker文件中设置一些东西来为一个容器分配6GB的内存。 任何帮助?

Docker复制并更改所有者

给定以下的Dockerfile FROM ubuntu RUN groupadd mygroup RUN useradd -ms /bin/bash -G mygroup john MKDIR /data COPY test/ /data/test data RUN chown -R john:mygroup /data CMD /bin/bash 在我的testing目录,这是复制我已经设置文件权限为770。 如果我在我的容器中执行su john ,我无法访问我的testing目录中的任何文件或子目录。 看起来这个问题与aufs文件系统中的所有权有关,在这里复制的目录仍然由root拥有,权限被设置为770。 有没有解决这个问题正确设置权限? 可以在复制之前将原始目录的权限设置为容器用户的uid。 但是这看起来更像是一个黑客。

如何使用基于高山的docker图像bash?

我从openjdk创build了一个docker镜像:8-jdk-alpine,但是当我尝试执行简单的命令时,出现以下错误: RUN bash /bin/sh: bash: not found RUN ./gradlew build env: can't execute 'bash': No such file or directory

如何将文件夹从Dockerfile复制到Docker镜像?

我在我的Dockerfile中尝试了下面的命令: COPY * /并且对结果感到惊讶。 看起来天真的docker代码遍历glob中的目录,然后转储目标目录中的每个文件,同时恭敬地忽略我的目录结构。 至less我是这样理解这张票的 ,这当然对应于我得到的结果。 我猜这个行为仍然存在的唯一原因必须是有一些其他的方式应该这样做。 但是,要知道一个小脑袋怎么知道,怎么知道呢?

docker如何添加一个文件,而不是提交到一个图像?

我有一个〜300Mb的压缩本地文件,我添加到docker的图像。 下一个状态然后提取图像。 问题是ADD语句导致提交导致新的文件系统层使图像大于它所需要的300Mb。 ADD /files/apache-stratos.zip /opt/apache-stratos.zip RUN unzip -q apache-stratos.zip && \ rm apache-stratos.zip && \ mv apache-stratos-* apache-stratos 问题 :是否有解决方法来添加本地文件而不会导致提交? 一个select是在启动Docker构build之前运行一个简单的Web服务器(例如python -m SimpleHTTPServer ),然后使用wget来检索文件,但是这看起来有点麻烦: RUN wget http://localhost:8000/apache-stratos.zip && \ unzip -q apache-stratos.zip && \ rm apache-stratos.zip && \ mv apache-stratos-* apache-stratos 另一个select是在容器启动时提取压缩文件,而不是build立时间,但我宁愿保持尽可能快的启动。

Docker – 在源文件中生成Arg

我正在尝试构build一个Docker容器,其源代码标记我想作为parameter passing。 构build脚本: docker build \ –pull=true \ … –build-arg version=${version} Dockerfile: ARG version FROM registry/repo:${version} 运行这个给我的错误Please provide a source image with prior to commit Please provide a source image with 。 有什么办法,我可以通过版本拉作为构build参数,并使用它? 我在docker版本1.12