docker - 从 AzureDevOps 运行 Dockerfile 时无法从 jonathonf 存储库获取包
问题描述
我有一个 Dockerfile,它从名为 jonathonf 的源获取包,但无法从该存储库下载一些包。任何人都可以帮我解决问题吗?我已经非常努力地解决了这个问题,但我无法解决它。
Dockerfile
FROM ubuntu:16.04
LABEL maintainer="Praveen"
# Install Python 3.6, Node & Yarn
RUN apt-get update -y \
&& apt-get install -y software-properties-common curl git \
&& add-apt-repository ppa:jonathonf/python-3.6 \
#These three lines are added to resolve jonathonf issue
#&& add-apt-repository ppa:deadsnakes/ppa \
#&& apt-get update -y \
#&& apt-get install python3.6 -y \
#&& apt-get npm \
#These three lines are added to resolve jonathonf issue
#&& add-apt-repository ppa:deadsnakes/ppa \
&& curl --silent --location https://deb.nodesource.com/setup_10.x | bash - \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update -y \
&& apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv nodejs --no-install-recommends yarn \
&& apt-get clean \
&& python3.6 -m pip install pip --upgrade \
&& python3.6 -m pip install wheel
# Install BigARTM
WORKDIR /tmp
RUN apt-get update -y \
&& apt-get install -y libboost-all-dev python3-setuptools cmake \
&& pip install numpy scipy pandas protobuf==3.0.0 tqdm \
&& git clone --branch=v0.9.0 https://github.com/bigartm/bigartm.git \
&& cd bigartm && mkdir build && cd build \
&& cmake -DPYTHON=python3.6 -DCMAKE_INSTALL_PREFIX=/usr/local .. \
&& make && make install
ENV ARTM_SHARED_LIBRARY=/usr/local/lib/libartm.so
# Install Model
WORKDIR /www
COPY application/python_model/requirements.txt ./python_model/requirements.txt
RUN pip install --no-cache-dir -r ./python_model/requirements.txt \
&& python3.6 -m spacy download en \
&& python3.6 -m nltk.downloader punkt stopwords averaged_perceptron_tagger
# Install NodeJS App
ADD application/package.json application/yarn.lock ./
RUN npm install -g yarn \
&& yarn install \
&& yarn cache clean
ADD application ./
CMD ["yarn", "start"]
错误:
apt-get update
Hit:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
Ign:2 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial InRelease
Hit:3 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Ign:5 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial Release
Hit:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease
Ign:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Ign:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Ign:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Ign:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Ign:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Err:7 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
403 Forbidden
Ign:8 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main all Packages
Reading package lists...
W: The repository 'http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial Release' does not have a Release file.
E: **Failed to fetch http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu/dists/xenial/main/binary-amd64/Packages 403 Forbidden**
E: Some index files failed to download. They have been ignored, or old ones used instead.
Error executing command, exiting
The command '/bin/sh -c apt-get update -y && apt-get install -y software-properties-common curl git && add-apt-repository ppa:jonathonf/python-3.6 && curl --silent --location https://deb.nodesource.com/setup_10.x | bash - && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && apt-get update -y && apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv nodejs --no-install-recommends yarn && apt-get clean && python3.6 -m pip install pip --upgrade && python3.6 -m pip install wheel' returned a non-zero code: 1
尝试 ubuntu:18.04 后出错:
Step 10/22 : ADD application/package.json application/yarn.lock ./
---> ba08da3d1daa
Step 11/22 : RUN npm install -g yarn && yarn install && yarn cache clean
---> Running in 72517b8173b6
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! File exists: /usr/bin/yarn
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-12-30T10_10_54_161Z-debug.log
The command '/bin/sh -c npm install -g yarn && yarn install && yarn cache clean' returned a non-zero code: 239
##[error]The command '/bin/sh -c npm install -g yarn && yarn install && yarn cache clean' returned a non-zero code: 239
##[error]The process '/usr/bin/docker' failed with exit code 239
解决方案
正如另一个答案中提到的,jonathonf/python3.6 PPA已被删除,不幸的是,这是在 Ubuntu 16.04 上安装 Python3.6 的“通常”方式。
如果 Ubuntu 版本不需要是 16.04,您可以改用 Ubuntu 18.04 (Bionic) 映像(ubuntu:bionic
或ubuntu:18.04
)。它已经内置了apt
用于安装 Python3.6 的替代源。
root@2c4e419e7489:/# apt show python3
Package: python3
Version: 3.6.7-1~18.04
Priority: important
Section: python
Source: python3-defaults
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Matthias Klose <doko@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 191 kB
...
APT-Sources: http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: interactive high-level object-oriented language (default python3 version)
root@2c4e419e7489:/# python3 -V
Python 3.6.9
这是一个使用ubuntu:bionic
并安装 Python3.6node
和yarn
. 请注意,我将其拆分为多个RUN
语句,以便我可以正确注释掉一些额外的信息。如果您愿意,可以将它们组合起来。我也不知道你是否还有其他步骤,但你的帖子只提到了这 3 个。
FROM ubuntu:bionic
LABEL maintainer="Praveen"
# Install essentials
RUN apt-get update -y \
&& apt-get install -y build-essential software-properties-common curl git
# Install Python 3.6
RUN apt-get install -y python3-pip \
&& apt-get clean \
&& python3 -m pip install --upgrade pip
# Install Node (also installs npm)
#
# Based on official instructions for Ubuntu and Debian
# https://github.com/nodesource/distributions/blob/master/README.md#debinstall
#
# The latest is setup_13.x, but I copied your original command that uses setup10.x.
# It might be better to use setup_13.x instead.
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& apt-get install -y nodejs
# Install Yarn
#
# Based on official instructions for Ubuntu and Debian
# https://yarnpkg.com/lang/en/docs/install/#debian-stable
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install -y yarn
这是构建的 Docker 映像的输出:
root@34c1457911df:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
root@34c1457911df:/# python3 -V
Python 3.6.9
root@34c1457911df:/# python3 -m pip -V
pip 19.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
root@34c1457911df:/# node --version
v10.18.0
root@34c1457911df:/# npm --version
6.13.4
root@34c1457911df:/# yarn --version
1.21.1
您尝试时收到的已发布错误消息ubuntu:18.04
Step 11/22 : RUN npm install -g yarn && yarn install && yarn cache clean
---> Running in 72517b8173b6
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! File exists: /usr/bin/yarn
表示您已经安装yarn
(可能正在使用apt install yarn
),然后您尝试从npm
. 除非您这样做,否则 NPM 不会覆盖以前的安装--force
。但是,由于您已经从 安装了它apt
,因此您无需使用 再次安装它npm
。(虽然我不使用yarn
,所以我不知道与yarn
fromapt
或 from是否有区别npm
。)
推荐阅读
- react-native - 用expo为android构建
- c++ - 如何检测我的程序是否进入自死锁?
- opengl - OpenGL:除非打印到控制台,否则不会渲染颜色(从统一)
- r - 如何在 Jupyter Notebook 上打印 R 中的整个数据框?
- google-cloud-platform - 如何在我自己的网站上的图像上使用 Google 的 Vision API
- regex - 基于正则表达式分离列 | 熊猫
- javascript - 无法更改反应挂钩中的复选框
- c++ - 如何从 cmake 在窗口中构建 32/64 位 dll?
- solidity - 在 Truffle 中使用构造函数部署智能合约
- azure - Azure DevOps:如何将 VS 配置文件设置复制到 yml 脚本中