我有一个像这样的docker文件,我必须将参数动态传递给docker run命令
FROM ubuntu:14.04
ENV IRONHIDE_SOURCE /var/tmp/ironhide-setup
RUN apt-get update && apt-get install -y openssh-server supervisor cron syslog-ng-core logrotate libapr1 libaprutil1 liblog4cxx10 libxml2 psmisc xsltproc ntp
RUN sed -i -E 's/^(\s*)system\(\);/\1unix-stream("\/dev\/log");/' /etc/syslog-ng/syslog-ng.conf
ADD ironhide-setup/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN mkdir -p /var/log/supervisor & mkdir -p /opt/ibm/
COPY /ironhide-setup/etc/cron.d/* /etc/cron.d
ADD ironhide-setup $IRONHIDE_SOURCE
ENV JAVA_HOME /usr/java/default
ENV PATH $JAVA_HOME/bin:$PATH
ENV IRONHIDE_ROOT /usr/ironhide
ENV LD_LIBRARY_PATH /usr/ironhide/lib
ENV IH_ROOT /usr/ironhide
ENV IRONHIDE_BACKUP_PATH /var/tmp/ironhide-backup
ENV PATH $IH_ROOT/bin:$PATH
RUN echo 'PS1="[AppConnect-Container@\h \w]: "' >> ~/.bashrc
CMD ["/usr/bin/supervisord"]
而我的supervisord.conf是这个
[supervisord]
nodaemon=true
[program:cron]
command = cron -f -L 15
priority=1
[program:syslog-ng]
command=/usr/sbin/syslog-ng -F -p /var/run/syslog-ng.pid --no-caps
[program:InstallCastIron]
command = %(ENV_IRONHIDE_SOURCE)s/scripts/var_setup
priority=2
我必须将参数传递给“ docker run”命令,因此当docker容器出现时,在脚本位置下的内部脚本之一应该使用该参数。
请让我知道我该怎么做以及如何实现” this
答案 0 :(得分:0)
要实现这一壮举,您将需要使用环境变量。
首先,您需要确保要传递参数以使用这些环境变量的服务。
第二,您需要在dockerfile中定义这些变量。 For example:-
第三,确保您使用入口点脚本For example:-
最后,您可以使用docker run -e DEFINE_THOSE_VARS=<value>
。或者,您也可以使用this
您可以遍历实现此专长的我的仓库here。
请随时提问。
干杯!