docker - 如何在 dockerfile 中的 cd 命令之后执行 .sh 文件?

标签 docker dockerfile docker-image

我正在尝试在 python 基础 docker 镜像中安装 Libressl。 Python 镜像默认具有 openssl。

我的 Dockerfile代码:

FROM python:3.7

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install git cpp make dh-autoreconf -y
RUN pip3 install requests
RUN git clone https://github.com/libressl-portable/portable.git /portable
RUN cd /portable \
       ./autogen.sh \
       ./configure --prefix=/opt/libressl --enable-nc \
       make check \
       make install

RUN echo "alias openssl='/opt/libressl/bin/openssl'" >> ~/.bashrc

COPY . /app
WORKDIR /app
CMD ["python3", "./debug.py"]

但是,我发现 git clone 做得很好,但是下一个命令失败了。

autogen.sh似乎没有被执行。

我怎样才能找到那个 .bashrc文件?

当我使用 source ~/.bashrc , 找不到源命令,因为该命令是用 /bin/sh 运行的.

我的 Dockerfile 可能有什么问题?

谢谢 :)

最佳答案

要组合多个命令调用,请使用运算符 && .此外,您可以对两个目标使用一次通话

cd /portable && \
       ./autogen.sh && \
       ./configure --prefix=/opt/libressl --enable-nc && \
       make check install

关于docker - 如何在 dockerfile 中的 cd 命令之后执行 .sh 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61608720/

相关文章:

linux - Docker 命令在 Windows 7 上不可用

docker - 无法获取 docker stats - Metricbeat 和 Docker

docker - 将 www 重定向到非 www 在 Traefik 2 中不起作用

Docker-compose 重新启动仅更新的图像

docker - 本地构建的docker镜像的sha256

powershell - 使用 PowerShell 作为默认 Shell,但在批处理文件运行时将其丢弃

docker - 如何在Docker容器中使用Ruby编写文件?

Docker - 挂载卷后执行命令

docker - 创建交互式 docker 图像

docker - 如何在docker容器中正确安装npm包