Tag: dockerfile

将主机文件添加到Docker容器 – 从Dockerfile

这是我使用docker的第一个2小时。 我已经从centos 4.0.6(项目需求)导入了一个linux镜像。 我意识到还有其他问题描述从主机复制文件到docker容器,但我想在创build容器时从主机复制文件到容器 – 例如通过Dockerfile命令。 我尝试这个的原因如下: 所以我的Dockerfile必须从svn服务器检出一些代码,然后编译然后执行编译的代码。 svn连接使用svn + ssh协议。 由于容器中的用户是root用户,我将相应的ssh用户添加到〜/ .subversion / config文件,并且不configurationStricthostKeyChecking。 在我的docker 在我的dockerfile中: RUN echo "[tunnels]" > ~/.subversion/config RUN echo "ssh = ssh -l mysvnuser" >> ~/.subversion/config RUN echo -e "Host svnserver.lan\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config RUN svn co svn+ssh://svnserver.lan/svn/bananas/branches/Ti_2.4 bananas … 我收到以下svn身份validation错误: Warning: Permanently added 'svnserver.lan,192.168.1.8' (RSA) to the list of […]

docker root crontab作业不执行

我有一个Ubuntu 14.04泊坞窗图像,我想安排一个python脚本执行每一分钟。 我的DockerFile包含CMD ["cron","-f"]以启动cron守护进程。 crontab条目如下所示: 0,1 * * * * root python /opt/com.org.project/main.py >> /opt/com.org.project/var/log/cron.log /opt/com.org.project/main.py是完全可访问的,拥有744权限, 所以可以执行。 我的/opt/com.org.project/var/log/cron.log文件中没有显示任何内容,也没有显示/var/log/cron.log文件。 然而ps aux | grep cron ps aux | grep cron显示在PID 1运行的cron -f 。 我错过了什么? 为什么我的cron作业不在容器中运行? 这里是我请求的DockerFile内容: FROM ubuntu # Update the os and install the dependencies needed for the container RUN apt-get update \ && apt-get install […]

我如何设置$ Dockerfile $ PS1?

如何在Dockerfile中设置PS1环境variables(bash提示符)? 我尝试过ENV PS1 "\h:\W \u$ " 但是这个命令不会改变提示。 我不知道为什么上面的ENV没有设置PS1提示。 我该怎么做?

configurationDockerfile以在创build容器时使用impdp命令

我使用wnameless / oracle-xe-11g docker镜像来创build一个新的镜像文件。 而当我从新的图像创build一个容器,我希望执行impdp命令。 这怎么能通过Dockerfile来实现? 这是我的Docker文件 Dockerfile # Base Image FROM wnameless/oracle-xe-11g # Create database_dump folder at / -location RUN mkdir ../database_dumps # Copy the dump file and put it into database_dumps created earlier COPY dump_file ../database_dumps # Give permission to user oracle on oracle folder to create tablespace and related operations RUN chown […]

在容器中设置ENVvariables不工作,是否在容器运行时执行“/ usr / local / bin”下的每一个?

我在Dockerfile有以下的定义: # This aims to be the default value if -e is not present on the run command ENV HOST_IP=127.0.0.1 … COPY /container-files/etc/php.d/zz-php.ini /etc/php5/mods-available/zz-php.ini RUN ln -s /etc/php5/mods-available/zz-php.ini /etc/php5/apache2/conf.d/zz-php.ini COPY /container-files/init-scripts/setup_xdebug_ip.sh /usr/local/bin/setup_xdebug_ip.sh RUN chmod +x /usr/local/bin/setup_xdebug_ip.sh CMD ["/usr/local/bin/setup_xdebug_ip.sh", "/usr/local/bin/setup_php_settings.sh"] 这是zz-php.ini的相关定义: ; Xdebug [Xdebug] xdebug.remote_enable=true xdebug.remote_host="192.168.3.1" => this should be overwrited by HOST_IP xdebug.remote_port="9001" xdebug.idekey="XDEBUG_PHPSTORM" 这是脚本setup_xdebug_ip.sh的内容: […]

尽pipe服务运行,Docker容器立即退出

类似的问题似乎也存在,但都没有明确的答案(至less不是我)。 我有一个容器里面有一个bin/start-ds文件的LDAP服务器。 问题是一旦shell脚本完成,容器就退出。 如果脚本只是打印信息,我会理解退出,但在我的情况下,它启动一个过程。 而且由于一个进程正在运行,我希望我的容器无限期运行,因为我在detach模式下启动它。 但事实并非如此,它立即退出。 任何指针将非常感激。 以下是我简单的Dockerfile : FROM unboundid-base:0.2 MAINTAINER helloworld CMD ["/home/unboundid/UnboundID-DS/bin/start-ds"]

“dockerfile”文本文件忙

我想从dockerfile创build一个项目。 首先,我应该从github克隆一个框架并安装它。 在我的Dockerfile我有以下的提示: RUN git clone https://github.com/simgrid/project.git WORKDIR "/project" RUN cmake option1 options2 . RUN sudo make RUN sudo make install 我用以下方式构build图像 docker build -t "myimage" . 但我有一个关于text file busy的错误。 我怎么能克服它? make[2]: execvp: /simgrid/tools/sg_unit_extractor.pl: Text file busy make[2]: *** [src/cunit_unit.cpp] Error 127 CMakeFiles/testall.dir/build.make:69: recipe for target 'src/cunit_unit.cpp' failed CMakeFiles/Makefile2:616: recipe for target 'CMakeFiles/testall.dir/all' failed make[1]: […]

如何在Postgres Docker容器中创build数据库?

我想在启动Postgres Docker镜像后创build一个数据库。 问题是如果我把我的数据库创build命令在我的docker-compose文件或者一个子dockerfile中,它会覆盖基本映像的命令来真正启动postgres – 所以我的psql没有启动服务器连接到。 例如: version: '2' services: db: command: bash -c "su – postgres -c '/usr/lib/postgresql/9.6/bin/psql -h 127.0.0.1 -p 6543 -U postgres -c \"create database dev;\"'" environment: – PGDATA=/pg – POSTGRES_PASSWORD=postgres – POSTGRES_USER=postgres image: postgres:9.6 ports: – '6543:5432' tmpfs: /pg 而图像文档并没有说明他们正在运行的启动Postgres的确切命令。 我试着把bash -c "postgres && …放在我的命令开头,但是它告诉我我不能以root身份启动Postgres。 我唯一可能的解决scheme是放弃docker-compose和dockerfile以支持bash脚本解决scheme,例如docker run postgres:9.6 psql -h postgres -U […]

docker集装箱通过港口进行通信

我试图创build2个docker容器,并运行它们可以通过本地端口相互通信的方式。 我创build了2个Python文件作为发件人和接收者。 当我没有docker运行他们沟通很好。 但是docker工他们没有正常运行。 寄件人 Python脚本 #!/usr/bin/python # -*- encoding: utf-8 -*- import socket import time import sys print sys.argv[1] print sys.argv[2] for i in range(1,10): time.sleep(2) data = "My parameters that I want to share with the server on ith iteration %d" % (i) print "sedning data: %d" % (i) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) […]

自定义boot2docker.iso以在容器上使用无线设备(Docker-toolbox)

我已经有了一个在Linux主机上完全工作的Docker容器。 现在我希望它在Windows和Mac OS X上工作。这个容器使用USB无线接口。 在Linux中,就像在Docker运行命令中使用–net=host一样简单,就这些了。 这样,我可以看到容器内的无线接口,并且可以将它们更改为监视模式。 现在让我们尝试在Windows / Mac … 我的调查让我selectDocker-toolbox for Windows / Mac。 在这个主机操作系统上,似乎无法将USB设备与标准的Docker进行映射。 现在,使用VirtualBox“默认”机器,我安装了VirtualBox扩展包,并创build了将USB设备连接到容器的filter。 现在我可以看到(最后!!!)USB设备使用lsusb命令进入容器,这是一个好消息…但不幸的是我不能看到他们作为无线接口做iwconfig 。 我想这是因为默认的boot2docker机器没有这个驱动程序。 所以,我的调查再次带我进入下一步… 我试图用无线驱动程序创build一个自定义的boot2docker.iso。 我在Dockerfile的官方boot2docker GitHub页面看到一个命令,我认为是“ 搞砸了”我的计划…命令是rm -rf ./*/kernel/net/wireless/* 。 看来它故意删除它们。 我试图删除该行,并build立图像生成一个新的ISO映像。 创build一个自定义的boot2docker iso就像下载(克隆)repo一样简单,并且安装了Docker,然后执行这个docker build -t boot2docker . && docker run –rm boot2docker > boot2docker.iso docker build -t boot2docker . && docker run –rm boot2docker > boot2docker.iso […]