- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建基于 Ubuntu 18.04 的自定义 Docker 镜像。 Ubuntu 预装了 Python 3.6,但我想 1.) 安装 Python 3.7,2.) 将其设为默认 Python 版本(因此可以使用 python
而不是 python3.7
来调用它,以及 3.)安装 pip。当我运行 docker build 时,它无法重新加载 ~/.bashrc
,因此 python
不是 python3.7
的别名.我该如何解决这个问题?
FROM ubuntu:18.04
# Set temp work directory
# for package configuration
WORKDIR /usr/src/cache
# Update apt packages
RUN apt update
RUN apt upgrade -y
# Install vim
RUN apt install vim -y
# Install python 3.7
RUN apt install software-properties-common -y
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt install python3.7 -y
# Make python 3.7 the default
RUN echo "alias python=python3.7" >> ~/.bashrc
RUN export PATH=${PATH}:/usr/bin/python3.7
RUN /bin/bash -c "source ~/.bashrc"
# Install pip
RUN apt install python3-pip -y
RUN python -m pip install --upgrade pip
# Install lsof
RUN apt install lsof
# Install ta-lib
# Source: https://medium.com/@artiya4u/installing-ta-lib-on-ubuntu-944d8ca24eae
RUN apt install build-essential wget -y
RUN wget https://artiya4u.keybase.pub/TA-lib/ta-lib-0.4.0-src.tar.gz
RUN tar -xvf ta-lib-0.4.0-src.tar.gz
RUN /bin/bash -c "cd ta-lib/; ./configure --prefix=/usr; make; make install"
# Install pip packages
COPY requirements.txt ./
RUN pip install -r requirements.txt
# Set working directory for code
WORKDIR /usr/src/app
docker build
:
Step 1/20 : FROM ubuntu:18.04
---> c3c304cb4f22
Step 2/20 : WORKDIR /usr/src/cache
---> Using cache
---> 6bab8662b50a
Step 3/20 : RUN apt update
---> Using cache
---> 4d3bc75e5b24
Step 4/20 : RUN apt upgrade -y
---> Using cache
---> 24a93e9b2518
Step 5/20 : RUN apt install software-properties-common -y
---> Using cache
---> 077ead1bcb54
Step 6/20 : RUN add-apt-repository ppa:deadsnakes/ppa
---> Using cache
---> 7771a6ac7068
Step 7/20 : RUN apt install python3.7 -y
---> Using cache
---> 5f57462b0444
Step 8/20 : RUN echo "alias python=python3.7" >> ~/.bashrc
---> Running in c31352b84ecd
Removing intermediate container c31352b84ecd
---> c1060eaa66b8
Step 9/20 : RUN export PATH=${PATH}:/usr/bin/python3.7
---> Running in 5de52797c355
Removing intermediate container 5de52797c355
---> 2a9eb6215da8
Step 10/20 : RUN /bin/bash -c "source ~/.bashrc"
---> Running in cde1dd943e21
Removing intermediate container cde1dd943e21
---> 99eae1743824
Step 11/20 : RUN apt install python3-pip -y
---> Running in 2dece67c9c40
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
........[OMITTING SOME OUTPUT].......
Setting up build-essential (12.4ubuntu1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Removing intermediate container 2dece67c9c40
---> 34c1ecded3f2
Step 12/20 : RUN python -m pip install --upgrade pip
---> Running in 32ffece96844
/bin/sh: 1: python: not found
The command '/bin/sh -c python -m pip install --upgrade pip' returned a non-zero code: 127
最佳答案
可以使用 update-alternatives 将 Python3.7 设置为默认 python。在docker文件中安装python3.7的命令后,添加:
# Add 3.7 to the available alternatives
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
# Set python3.7 as the default python
RUN update-alternatives --set python /usr/bin/python3.7
如果您还需要 python3 指向 3.7,则将上述调用中的/usr/bin/python 和 python 替换为/usr/bin/python3 和 python3。
关于python - 如何从 Dockerfile 安装 Python 3.7 和 Pip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61371949/
我正在尝试使用谷歌云构建触发器来构建我的 docker 容器。不幸的是,构建没有找到我的 docker 文件。它不在我的存储库的根目录中,但我认为我可以指定一个相对路径。显然我配置错误了。下面是我的
我可以像这样构建一个 Dockerfile docker build -t deepak/ruby . 但是对于一个不名为Dockerfile的Dockerfile # DOCKER-VERSION
是否可以命名构建阶段?我正在搜索类似以下示例的内容: ARG NAME FROM python:3.7-alpine as modul-${NAME} # ... 如果我尝试这个例子,就会发生这个错误
在我的 Dockerfile 中,我需要使用命令替换来添加一些环境变量。我想设置 ENV PYTHONPATH /usr/local/$(python3 -c 'from distutils impo
以下Dockerfile包含四个COPY层: COPY README.md ./ COPY package.json ./ COPY gulpfile.js ./ COPY __BUILD_NUMBE
我正在尝试从我创建的 Dockerfile 中拉取 tomcat,并使用以下命令拉取 centos: FROM centos RUN docker run -it tomcat 然后现在我正在创建一个
我不确定是否应该为我的 Node.js 应用程序创建不同的 Dockerfile 文件。一种用于没有开发依赖项的生产,另一种用于包含开发依赖项的测试。 或者一个基本上是开发Dockerfile.dev
我拥有的是多个相似且简单的dockerfile 但我想要的是有一个单一的基础 dockerfile 和我的 dockerfile将他们的变量传递给它。 在我的例子中,dockerfile 之间的唯一区
我有一个应用程序有两个 Dockerfile ,说 Dockerfile.foo和 Dockerfile.bar ,预计将为 docker-compose.yml 的两个不同服务生成两个不同的图像.
我是一个 docker maven 插件新手。 如果我理解得很好,根据Spotify's Dockerfile Maven documentation ,应该将 Dockerfile 放在我的项目的根
我正在设置一个docker容器,将在this article之后在nginx服务器上为我的Angular 5应用程序提供服务。 本文提出了这个Dockerfile: # Stage 0, based
大家好, 我是 docker 的新手,我想容器化我的 ASP.NET Core 应用程序,但出现错误,我无法继续构建我的图像 这是我的示例 Dockerfile FROM microsoft/dotn
我想在不使用注册表的情况下链接 Dockerfiles,这可以通过 FROM 实现吗?陈述? 以两个 Dockerfile 为例: Dockerfile /some/other/dir/Dockerf
我尝试在公共(public) dockerhub 上通过我自己的镜像安装 Airflow,但它在本地运行完美,但当我尝试在 Openshift 上使用它时。我在下面收到此错误。 `ERROR: Cou
此 dockerfile 工作正常。但是如何在 dockerfile 中执行命令? FROM alpine RUN apk add --update sqlite && rm -rf /var/cac
当我尝试设置自动构建时,我的 Docker Hub 存储库中的 Dockerfile 为空。如果我触发构建:- Build failed: Dockerfile not found at ./Dock
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 1年前关闭。 Improve this
我目前正在将一个巨大的 DockerFile 拆分为单独的 DockerFile,但是在巨大的 DockerFile 中定义的一些变量需要在单独的 DockerFile 中使用。 Docker 是否有
我有一个 Dockerfile 可以创建我想在这里使用的构建镜像:~/build/Dockerfile 然后我使用一个标准镜像来部署 从 ~/build/Dockerfile 构建的图像没有在任何地方
我运行这个: ➜ frontend git:(master) ✗ docker-compose up Building web ERROR: Cannot locate specified Dock
我是一名优秀的程序员,十分优秀!