Tag: 文件

如何将文件夹从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

Dockerfile if else条件与外部参数

我有dockerfile FROM centos:7 ENV foo=42 然后我build立它 docker build -t my_docker . 并运行它。 docker run -it -d my_docker 是否有可能从命令行传递参数,并在Dockerfile中使用它? 我的意思是这样的 FROM centos:7 if (my_arg==42) {ENV=TRUE} else: {ENV=FALSE} 并build立这个论点。 docker build -t my_docker . –my_arg=42

自行托pipe的替代hub.docker.com?

我想build立一个私人版本的hub.docker.com,让我创build一个由我的私人gitlab实例推送的webhook。 换句话说 – 当我推送到Gitlab时,这个Dockerregistry会检出这个存储库并构build它。 我需要这个来抵御恶意的Docker文件,这样服务器就不会轻易被泄露,从而泄露所有托pipe容器的内容。 有没有一种方法可以轻松实现?

Heroku运行端口参数的Docker镜像

当我将现有的Docker镜像推送到Heroku时,Heroku提供了一个$ PORT示例。 我怎样才能将这个属性传递给Heroku运行实例? 本地主机,这将工作: docker pull swaggerapi/swagger-ui docker run -p 80:8080 swaggerapi/swagger-ui 在Heroku我应该这样做: docker run -p $PORT:8080 swaggerapi/swagger-ui 是这样的可能吗?

如何向Dockerfile中的Jenkins for LDAPS添加SSL自签名证书?

我想在Jenkins的安全性下启用LDAPS,但是我的LDAP服务器有一个自签名的CERT。 有没有人做过这个或有一些指针呢? 我必须使用keytool吗? 在我的Dockerfile中,我正在尝试以下,但是这不起作用: FROM jenkins USER root # Install CA certs COPY ca-certificates.crt /etc/ssl/certs/ca-certificates.crt RUN chmod +r /etc/ssl/certs/ca-certificates.crt # Install the Jenkins plugin COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt # Expose container port 33838 for Jenkins UDP-based auto-discovery EXPOSE 33848/udp ENV JAVA_OPTS -Xmx2048m

当入口点出现时,Docker运行命令忽略Dockerfile CMD的一部分

当我运行我的docker容器时,它似乎只遵守CMD数组(python可执行文件)的第一个元素,并忽略尾随参数。 Dockerfile: FROM ubuntu:14.04 ENTRYPOINT ["/bin/bash", "-c"] CMD ["/virtualenv/bin/python", "/mycode/myscript.py", "–param1"] 运行命令: $ docker run –rm -it –volume $(pwd)/..:/mycode –volume mycontainer-virtualenv:/virtualenv mycontainer 输出: Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 如果我运行–detach而不是–detach ,则会发生同样的情况。 如果我使用CMD作为覆盖docker运行参数运行,也会发生同样的情况: $ docker run –rm -it –volume $(pwd)/..:/mycode –volume […]

当ENTRYPOINT是一个shell脚本时,Docker CMD怪异

这是一个简单的Dockerfile FROM centos:6.6 ENTRYPOINT ["/bin/bash", "-l", "-c"] CMD ["echo", "foo"] 不幸的是它不工作。 当您运行生成的结果容器时,没有任何回应。 如果你注释掉ENTRYPOINT那么它就起作用了。 但是,如果将ENTRYPOINT设置为/bin/sh -c ,则会再次失败 FROM centos:6.6 ENTRYPOINT ["/bin/sh", "-c"] CMD ["echo", "foo"] 我以为这是一个没有定义的容器的默认ENTRYPOINT ,为什么没有这个工作? 最后,这也是有效的 FROM centos:6.6 ENTRYPOINT ["/bin/bash", "-l", "-c"] CMD ["echo foo"] 在提交问题之前,我想看看我是否做了明显错误的事情? 我在我的容器内使用rvm ,这需要一个loginshell才能正常工作。

为什么我不能得到由docker build创build的文件尾部的输出

Docker信息: Containers: 18 Running: 18 Paused: 0 Stopped: 0 Images: 188 Server Version: 1.13.1 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1 […]