gpt4 book ai didi

bash - 将项目目录设置为Dockerfile中Entrypoint的Workdir

转载 作者:行者123 更新时间:2023-12-02 21:16:29 24 4
gpt4 key购买 nike

我已经通过Spark安装定义了一个Dockerfile。我想从定义为入口点的bash脚本加载应用程序。但是,此脚本应使用参数来实现。该脚本位于项目文件夹中。问题是如何在将项目目录定义为workdir的情况下将此脚本设置为入口点?

我的Dockerfile现在看起来像这样:

    FROM java:8

ENV SCALA_VERSION 2.11.8
ENV SBT_VERSION 1.1.1
ENV SPARK_VERSION 2.2.0
ENV SPARK_DIST spark-$SPARK_VERSION-bin-hadoop2.6
ENV SPARK_ARCH $SPARK_DIST.tgz
ARG SPARK_MASTER

WORKDIR /opt

# Install Scala
RUN \
cd /root && \
curl -o scala-$SCALA_VERSION.tgz http://downloads.typesafe.com/scala/$SCALA_VERSION/scala-$SCALA_VERSION.tgz && \
tar -xf scala-$SCALA_VERSION.tgz && \
rm scala-$SCALA_VERSION.tgz && \
echo >> /root/.bashrc && \
echo 'export PATH=~/scala-$SCALA_VERSION/bin:$PATH' >> /root/.bashrc

# Install SBT
RUN \
curl -L -o sbt-$SBT_VERSION.deb https://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb && \
dpkg -i sbt-$SBT_VERSION.deb && \
rm sbt-$SBT_VERSION.deb


# Install Spark
RUN \
cd /opt && \
curl -o $SPARK_ARCH http://d3kbcqa49mib13.cloudfront.net/$SPARK_ARCH && \
tar xvfz $SPARK_ARCH && \
rm $SPARK_ARCH && \
echo 'export PATH=$SPARK_DIST/bin:$PATH' >> /root/.bashrc


EXPOSE 9851 9852 4040 9092 9200 9300 5601 7474 7687 7473

VOLUME /home/user/path/to/project /Demo

WORKDIR /Demo

ENTRYPOINT runDemo.sh $SPARK_MASTER

最佳答案

如评论中所述,您可以执行以下操作:

...
EXPOSE 9851 9852 4040 9092 9200 9300 5601 7474 7687 7473

VOLUME /home/user/path/to/project /Demo

WORKDIR /Demo

ENTRYPOINT runDemo.sh $SPARK_MASTER

这将在容器的 /home/user/path/to/project中安装本地 /Demo文件夹,然后将 /Demo/runDemo.sh $SPARK_MASTER设置为入口点。

请注意,如果脚本是独立的(即项目主目录中没有外部依赖项),则可以使用 COPY将脚本仅添加到容器中,而无需装载整个卷。
...
EXPOSE 9851 9852 4040 9092 9200 9300 5601 7474 7687 7473

COPY /home/user/path/to/project/runDemo.sh /Demo

WORKDIR /Demo

ENTRYPOINT runDemo.sh $SPARK_MASTER

这是 volumesDockerfile directives的文档。

关于bash - 将项目目录设置为Dockerfile中Entrypoint的Workdir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50638832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com