【发布时间】:2020-12-05 18:52:02
【问题描述】:
我有这个 Dockerfile ,我想将参数传递给脚本并在容器上运行它,但由于某种原因它不会工作。 我使用 ARG & ENV 和 ENTRYPOINT。
FROM jrei/systemd-ubuntu:18.04
MAINTAINER devops@carbyne911.com
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
vim \
apt-utils \
net-tools \
openjdk-8-jre \
linux-headers-generic \
libgstreamer1.0-0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-doc \
gstreamer1.0-tools \
gstreamer1.0-rtsp \
python-gst-1.0 \
python3-gst-1.0 \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libfontconfig1-dev \
libfreetype6-dev \
libpng-dev \
libcairo2-dev \
libjpeg-dev \
libgif-dev \
libgstreamer-plugins-base1.0-dev
ARG JAR_VERSION
ENV mfsVersion=$JAR_VERSION
RUN mkdir -p /home/ubuntu
COPY ./target/deployment/dependencies.tar.gz /home/ubuntu
COPY ./target/deployment/aws_install-docker.sh /home/ubuntu
COPY ./target/deployment/MediaForwardService-${JAR_VERSION}-standalone.jar /home/ubuntu
COPY ./target/deployment/MediaForwardService-${JAR_VERSION}-standalone.jar /home/ubuntu
COPY ./target/deployment/libMediaForwardRSL-${JAR_VERSION}.so /lib64/
COPY ./src/main/resources/application.conf /home/ubuntu
COPY ./target/deployment/systemctl3.py /usr/bin/systemctl
RUN test -L /bin/systemctl || ln -sf /usr/bin/systemctl /bin/systemctl
RUN chmod +x /usr/bin/systemctl
WORKDIR /home/ubuntu
RUN chmod +x aws_install-docker.sh
EXPOSE 8102
EXPOSE 16384
EXPOSE 32766
ENTRYPOINT ["/bin/bash","-c", "/home/ubuntu/aws_install-docker.sh"]
CMD ["$mfsVersion"]
似乎我对我传递的论点有误。我做错了什么?
【问题讨论】:
-
您可能不想要
ENTRYPOINT,而只想要CMD ./aws_install-docker.sh $mfsVersion,猜测一下,但如果没有实际的错误消息,这有点难以说。 -
您使用的是 Windows 还是 Linux? [cmd] 标签建议使用 Windows 的命令解释器,但您的代码建议您在 Ubuntu 中执行此操作并使用
BourneAgainSHell。由于这似乎不适用于 Windows 命令解释器cmd.exe,并且您有足够的时间做出回应,因此我决定删除您的无效标签。
标签: linux docker environment-variables dockerfile