Tag: 文件

访问参数的数量传入docker run命令脚本

我有一个docker的脚本,看起来像这样: #!/bin/sh LABEL=$1 mkdir -p /backup/$LABEL … 我可以通过$ 1,$ 2等访问通过正常的bash方式传递的参数,但我也需要知道传入的参数的数量。起初我以为我可以这样做: if [ $# -eq 2 ]; then 但是,这是行不通的。 任何想法如何检索参数的数量? TIA,Ole

Docker / Dockerfile:使用ENTRYPOINT进行git clone

我试图在我的Dockerfile中运行一个git clone命令作为入口点,这样它就不会被caching,我保证会拥有最新的源代码。 目前我在Dockerfile中有以下代码: FROM ubuntu:trusty MAINTAINER Fernando Mayo <fernando@tutum.co>, Feng Honglin <hfeng@tutum.co> # Install packages ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get -y install vim supervisor git curl unzip apache2 libapache2-mod-php5 pwgen php-apc php5-mcrypt php5-mysql php5-curl&& \ echo "ServerName localhost" >> /etc/apache2/apache2.conf # Install Composer RUN curl -sS https://getcomposer.org/installer | sudo php — […]

Dockerfile与docker运行

我在使用Dockerfile的Docker中发布端口的问题与手动使用docker run的问题相比。 使用下面的命令,Docker容器启动成功,当我访问浏览器中的主机IP地址(192.168.99.100)时,加载了http://192.168.99.100:8080 – RabbitMQ Webpipe理仪表板。 docker run -d –hostname my-rabbit –name some-rabbit -p 8080:15672 rabbitmq:3.5.6-management 在这一点上,我运行以下来释放我想从Dockerfile中使用的端口: docker stop some-rabbit 当我运行下面的docker-compose命令时,一旦我访问上面的同一个URL( http://192.168.99.100:8080 ),就会收到“拒绝连接这个站点192.168.99.100”。 docker-compose build docker-compose up -d 这里是我正在使用的Dockerfile: version: '2' services: rabbitmq: container_name: rabbit hostname: rabbit ports: – "8080:15762" image: rabbitmq:3.5.6-management 以下是docker run后docker run docker ps的结果 6c5a97bd51bc rabbitmq:3.5.6-management "/docker-entrypoint.s" 16 seconds ago Up 15 […]

dockerfile位于何处?

有一个容器,大量的工作已经完成(部分在dockerfile中,部分在容器本身内部 – 从内部公然的方法),并从dockerfile分离。 任何人都知道在哪里docker店的信息,从ENTYPOINT收集? 这可能是一些文件docker创build,这是在docker start [container] and docker run -it [container sum] 。 需要编辑,真的不想从头开始。 很确定,不需要,可以在没有原始docker文件的情况下工作在容器上。 docker网站的一般文件没有给出任何的洞察力 我被build议直接编辑/var/lib/docker/container/[container #]/config.v2.json试过,结果如下:如果我编辑入口点(我会尝试提供图像看起来如何) – s7.photobucket.com/user/309339939/media/docker.jpg.html 这没有帮助,因为在docker commit之后,值不会保存到新的值。 但是,如果我改变cmd ,那么它被保存。 结论:除了该文件之外,入口点还依赖于其他的东西。 有任何想法吗?

使用docker执行自动化的build议

docker工人我很擅长。 我需要你的意见,我应该采取什么样的方法来做到以下几点: 我需要构build一个包X的分发tarball 。 显而易见的步骤是: $ git clone X && cd X # get source $ ./autogen.sh # install some extra packages for building project $ ./configure $ make $ make test $ make dist # create tarball 作为应用程序要求的一部分,我需要获得上述每个命令的output和success flag 。 我有以下两种方法: 使用发行版的基本映像制作dockerfile ,并在其中包含上述所有步骤。 最后输出tarball。 如果任何中间步骤失败,该过程将失败。 但使用这种方法,我正在parsing单个命令( make test , ./configure )的输出中遇到的问题? 此外,我必须使用–no-cache每次构build,因为我正在做git clone而且我的repo频繁更新 其他是我在运行的容器上单独运行上述步骤。 […]

CMD在Dockerfile中的重要性

我有这个Dockerfile工作正常,但我被告知,也许这不是做我想要的最好的方式: FROM debian:jessie RUN apt-get update && apt-get install -y lighttpd php5-cgi php5-common php5 php5-mysql php5-gd RUN echo server.modules += \(\"mod_rewrite\"\) >> /etc/lighttpd/lighttpd.conf CMD ["lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"] RUN lighty-enable-mod fastcgi-php RUN service lighttpd restart RUN chown -R www-data:www-data /var/www/html 正如你所看到的,我正在用lighttpd和php创build一个容器的映像。 我的问题是关于我的Dockerfile中CMD部分的位置。 有人告诉我最好把文件放在文件末尾,但正如你所看到的那样,我在中间做了这个,工作得很好。 它不会停止创build,也不会干扰在其下面的运行部分中的service lighttpd restart 。 有没有最好的做法,这是正常的? 我可以在apt-get安装后用我的CMD创build一个Dockerfile吗? 感谢您对我的问题的回答,如果有任何重大错误,请回覆我的英文。

Docker不会运行带有外部来源的cron作业文件(host-windows)

我使用主pipe运行cron和nginx,问题是当我尝试COPY或VOLUME挂载我的cron文件时,它不会在/etc/cron.d中运行我的cron文件 但是,当我exec -it <container_id> bash到容器中,并从内部创build完全相同的cron文件时,它立即被识别并按照它应该运行。 Dockerfile: FROM phusion/baseimage:latest ENV TERM xterm ENV HOME /root RUN apt-get update && apt-get install -y \ nginx \ supervisor \ curl \ nano \ net-tools RUN rm -rf /etc/nginx/* COPY nginx_conf /etc/nginx COPY supervisor_conf /etc/supervisor/ RUN mkdir -p /var/log/supervisor COPY crontabs /etc/cron.d/ RUN chmod -R 644 /etc/cron.d/ CMD /usr/bin/supervisord […]

为什么我的npm dockerfile循环?

我正在容纳一个nodejs应用程序。 我的Dockerfile看起来像这样: FROM node:4-onbuild ADD ./ /egp RUN cd /egp \ && apt-get update \ && apt-get install -y r-base python-dev python-matplotlib python-pil python-pip \ && ./init.R \ && pip install wordcloud \ && echo "ABOUT TO do NPM" \ && npm install -g bower gulp \ && echo "JUST FINISHED ALL INSTALLATION" EXPOSE 5000 […]

存储和恢复inheritance的Dockerfile USER设置

我正在寻找如何存储和恢复Dockerfile中inheritance的docker镜像的USER。 例如,我的父图像指定一个默认服务,并将USER设置为serviceuser。 现在我有一个依赖的图像,从父图像inheritance,作为根进行一些修改,但要保持docker镜像用户serviceuser。 我可以手动做到这一点: 父Dockerfile: from default USER serviceuser ENTRYPOINT ["some-service"] 其他Dockerfile: from parent USER root RUN apt-get install -y cool-stuff USER serviceuser 但是,这种方式,当我改变父母的用户,我不得不更新所有的孩子的形象。 有没有一种方法在子Dockerfile中dynamic地做到这一点? 我想过的其他选项是在子脚本中使用sudo或以root身份运行入口点(即不设置USER),并在启动脚本中执行服务用户切换。 但两者都有安全隐患。

安装nodejs返回一个非零的代码:1与docker构build

我正在尝试用下面的dockerfilebuild立一个docker镜像: FROM ubuntu:16.10 MAINTAINER Fátima Alves COPY ./dist /myprogram/ WORKDIR /myprogram RUN apt-get update \ && \ apt-get install -y \ curl \ && \ curl -sL https://deb.nodesource.com/setup_6.x | bash – \ && \ apt-get install -y \ python-dev \ libxml2-dev \ libxslt1-dev 不pipe我做什么,这个消息都出现在terminal上: curl -sL https://deb.nodesource.com/setup_6.x | bash -' returned a non-zero code: 1 […]