Tag: 文件

为什么我不能得到由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 […]

是否将ARG放在Dockerfile的顶部,防止层重用?

如果在Dockerfile顶部声明的ARG被更改,但是它的值仅用于靠近Dockerfile末尾的RUN命令,Docker会从头重build整个映像,还是能够重新使用中间相关RUN命令之前的图像? 为了更好地利用分层,我应该将我的ARG声明放在Dockerfile的顶部,还是放在使用它们的部分之前? 我想我的问题的一部分是否是一个ARG指令生成一个中间层。

在Docker镜像中部署WAR文件的正确方法

docker容器中部署java项目的docker方式是什么? 我是否将战争复制到webapps中: FROM jetty:9.2.10 MAINTAINER Me "me@me.com" ADD ./target/*.war /var/lib/jetty/webapps/ROOT.war 或者我拿起爆炸的战争文件: FROM jetty:9.2.10 MAINTAINER Me "me@me.com" ADD ./target/app-0.1.0.BUILD-SNAPSHOT /var/lib/jetty/webapps/ROOT 通常情况下,如果它是一个普通的容器,但是使用docker,则会部署密封的war文件,这意味着每次进行小的更改时都会推送一个10-20MB的文件,而添加爆炸的war文件只会推动差别 – .class文件已经改变。 部署爆炸战争而不是战争文件有什么缺点吗?

docker运行追加到/ etc /主机在Dockerfile不起作用

我有一个简单的Dockerfile,但第一个RUN命令(将主机IP地址附加到/ etc / hosts)没有任何作用 FROM dockerfile/java RUN sudo echo "XX.XX.XXX.XXX some.box.com MyFriendlyBoxName" >> /etc/hosts ADD ./somejavaapp.jar /tmp/ #CMD java -jar /tmp/somejavaapp.jar EXPOSE 8280 我build立使用 docker build . 然后testing运行使用的RUN回波线 sudo docker run -t -i <built image ID> /bin/bash 然后我进入容器,但/ etc / hosts文件没有被追加。 现在在容器中运行相同的echo ….行具有所需的效果 任何人都可以告诉我什么是我的docker文件运行错误…?

Dockerfile可以扩展另一个吗?

我有一个像这样的PHP的Dockerfile: FROM php:7-fpm ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get install -y git libicu-dev libmagickwand-dev libmcrypt-dev libcurl3-dev jpegoptim RUN pecl install imagick && \ docker-php-ext-enable imagick RUN docker-php-ext-install intl RUN docker-php-ext-install pdo_mysql RUN docker-php-ext-install opcache RUN docker-php-ext-install mcrypt RUN docker-php-ext-install curl RUN docker-php-ext-install zip 我想创build另一个基于第一个的Dockerfile,但添加了一些PHP扩展(用于开发目的):Xdebug和其他东西。 我可以创build一个扩展我的主Dockerfile(不重写)的“dev”Dockerfile吗?

在Docker中安装GD

我是一个完整的Docker新手,但不得不维护一个现有的系统。 我正在使用的Dockerfile如下所示: FROM php:5.6-apache RUN docker-php-ext-install mysql mysqli RUN apt-get update -y && apt-get install -y sendmail RUN apt-get update && \ apt-get install -y \ zlib1g-dev RUN docker-php-ext-install mbstring RUN docker-php-ext-install zip RUN docker-php-ext-install gd 当我运行“dockerbuild设[sitename]”一切似乎没问题,直到我得到错误: configure: error: png.h not found. The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1 这个错误的原因是什么?

无法在dockerfile中执行gcloud init

我已经做了一个Dockerfile用于将我的node.js应用程序部署到Google容器引擎中,如下所示 FROM node:0.12 COPY google-cloud-sdk /google-cloud-sdk RUN /google-cloud-sdk/bin/gcloud init COPY bpe /bpe CMD cd /bpe;npm start 我应该在Dockerfile中使用gcloud init,因为我的node.js应用程序使用gcloud-node模块在GCS中创build存储桶。 当我使用上面的docker文件,并做dockerbuild成它失败,以下错误 sudo docker build -t gcr.io/[PROJECT_ID]/test-node:v1 . Sending build context to Docker daemon 489.3 MB Sending build context to Docker daemon Step 0 : FROM node:0.12 —> 57ef47f6c658 Step 1 : COPY google-cloud-sdk /google-cloud-sdk —> f102b82812f5 Removing […]

使用Docker我得到的错误:“SQLSTATE 没有这样的文件或目录”

我正在使用Docker创build一个容器来testing我的Mac上构build于PHP和MySQL上的Web应用程序。 我的PHP应用程序是使用MVC和路由的无脂框架构build的。 我有两个Dockerfiles,一个用于MySQL,一个用于PHP。 我已经成功地使用了testing的Docker应用程序,所以我相信我的映像安装正确。 错误的主要部分: Internal Server Error SQLSTATE[HY000] [2002] No such file or directory [fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;')) [fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password') 请注意,如果我连接使用127.0.0.1而不是localhost我得到一个稍微不同的错误,说: SQLSTATE[HY000] [2002] Connection refused 我的PHP Dockerfile: FROM php:5.6-apache RUN docker-php-ext-install mysqli pdo pdo_mysql RUN a2enmod rewrite 我的MySQL Dockerfile: FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD password ENV MYSQL_DATABASE robohome COPY ./schema.sql /docker-entrypoint-initdb.d/ 我的Controller.php文件错误提到第24行: <?php namespace Controllers; […]

无法将Docker卷目录的所有者更改为非root用户

我在使用Kernel 3.13.0-4的Ubuntu 14.04.1 LTS上使用Docker 1.4.1。 考虑下面的Dockerfile FROM debian:wheezy VOLUME /var/myvol # RUN mkdir /var/myvol # copy content to volume ADD foo /var/myvol/foo # create user, and make it new owner of directory RUN useradd nonroot \ && chown -R nonroot:nonroot /var/myvol/ \ && ls -al /var/myvol # switch to new user USER nonroot # remove […]

Dockerfile和问题安装工作

我试图执行凉亭安装在节点上:4.1.2泊坞窗容器从docker文件。 我的dockerfile的一部分是这样的: #Install bower to command line RUN npm install -g bower # Define the host folder that will contain the code WORKDIR /application # Copy src to application host folder** ADD . /application # RUN move to /application/public/webapp where there is a bower.json file and install it** RUN cd public/webapp && bower install –allow-root […]