【问题标题】:Dockerfile: Python3 not foundDockerfile:未找到 Python3
【发布时间】:2020-09-22 04:35:56
【问题描述】:

我正在尝试将 bash 脚本转换为 Dockerfile,因为我们正在使用 AWS Batch 进行容器化路线

基本上我会安装 CPLEX(一个优化库)和 Anaconda,安装一些相关的软件包,检查我的环境是否可以运行,然后启动一个 shell 脚本来运行批处理作业。

这是我的 Dockerfile 的 sn-p:

FROM amazonlinux:latest

# Download packages for container
RUN yum update -y
RUN yum -y install which unzip aws-cli \
RUN yum install -y tar.x86_64 
RUN yum install gzip -y
RUN yum install ncompress -y
RUN yum -y install wget
RUN yum install -y nano

# Set working directory
WORKDIR /setup

#: Copy CPLEX installer binary and installation script.
COPY cplex_odee1210.linux-x86-64.bin /setup/
COPY cplex_installer_input.sh /setup/

#: Install CPLEX and update .bashrc
RUN chmod +x /setup/cplex_odee1210.linux-x86-64.bin 
RUN chmod +x cplex_installer_input.sh
RUN ./cplex_installer_input.sh | bash cplex_odee1210.linux-x86-64.bin 
RUN echo 'export PATH=$PATH:/opt/ibm/ILOG/CPLEX_Optimizer1210/cplex/bin/x86-64_linux' >>/root/.bashrc \
    && /bin/bash -c "source ~/.bashrc"
ENV PATH $PATH:/opt/ibm/ILOG/CPLEX_Optimizer1210/cplex/bin/x86-64_linux

#: Download Anaconda
COPY Anaconda3-2019.10-Linux-x86_64.sh /setup/
RUN bash Anaconda3-2019.10-Linux-x86_64.sh -b -p /home/ec2-user/anaconda3 
RUN echo 'export PATH=$PATH:/home/ec2-user/anaconda3/bin' >>/root/.bashrc \
    && /bin/bash -c "source ~/.bashrc"
ENV PATH $PATH:/home/ec2-user/anaconda3/bin

RUN conda install pandas -y \
    && conda install numpy -y \
    && conda install ujson -y \
    && pip install docplex \
    && pip install boto3 \
    && pip install grpcio \
    && pip install grpcio-tools



RUN python3 -m docplex.mp.environment

ADD fetch_and_run.sh /usr/local/bin/fetch_and_run.sh

ENTRYPOINT ["/usr/local/bin/fetch_and_run.sh"]

从那里,我开始了一个 bash 脚本

#!/bin/bash
date
echo "Args: $@"
env
echo "script_path: $1"
echo "script_name: $2"
echo "path_prefix: $3"
echo "jobID: $AWS_BATCH_JOB_ID"
echo "jobQueue: $AWS_BATCH_JQ_NAME"
echo "computeEnvironment: $AWS_BATCH_CE_NAME"

echo "current directory: $(pwd)"

mkdir /tmp/scripts/
aws s3 cp $1 /tmp/scripts/$2
python3 /tmp/scripts/${@:2}

但由于某种原因,我不断得到

/tmp/tmp.hQlWYBEFs/batch-file-temp: line 20: python3: command not found

我需要更改一些 PATH 变量吗?为什么 Docker 没有选择我的 Python 3 版本?

【问题讨论】:

    标签: docker docker-compose dockerfile


    【解决方案1】:

    图片需要安装python3。构建映像需要容器中存在的文件和程序。你自己系统上安装的python3不可用。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 2020-05-22
      相关资源
      最近更新 更多