我想做的
我想安装yq
来编辑Docker容器上的一些yaml文件。
停靠文件
FROM python:3
RUN apt-get update
RUN apt-key adv --keyserver keyserver.ubuntu.com --keyserver-option http-proxy=http://xxxxxx.com:9999 --recv-keys CC86BB64
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:rmescandon/yq
RUN apt update
RUN apt install yq -y
参考
https://github.com/mikefarah/yq#on-ubuntu-1604-or-higher-from-debian-package
构建日志
=> => transferring dockerfile: 486B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/python:3 0.0s
=> CACHED [1/7] FROM docker.io/library/python:3 0.0s
=> [2/7] RUN apt-get update 2.7s
=> [3/7] RUN apt-key adv --keyserver keyserver.ubuntu.com --keyserver-option http-proxy=http://xxxxxx.com:9999 --recv-keys CC86BB64 1.2s
=> [4/7] RUN apt-get install -y software-properties-common 11.4s
=> [5/7] RUN add-apt-repository ppa:rmescandon/yq 13.3s
=> ERROR [6/7] RUN apt update 1.8s
------
> [6/7] RUN apt update:
#9 0.159
#9 0.159 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#9 0.159
#9 0.205 Hit:1 http://deb.debian.org/debian buster InRelease
#9 0.205 Hit:2 http://security.debian.org/debian-security buster/updates InRelease
#9 0.227 Hit:3 http://deb.debian.org/debian buster-updates InRelease
#9 0.870 Ign:4 http://ppa.launchpad.net/rmescandon/yq/ubuntu impish InRelease
#9 1.356 Err:5 http://ppa.launchpad.net/rmescandon/yq/ubuntu impish Release
#9 1.356 404 Not Found [IP: 91.189.95.85 80]
#9 1.381 Reading package lists...
#9 1.752 E: The repository 'http://ppa.launchpad.net/rmescandon/yq/ubuntu impish Release' does not have a Release file.
------
executor failed running [/bin/sh -c apt update]: exit code: 100
问题
我该怎么修呢?
3条答案
按热度按时间iswrvxsc1#
yq
的PPA在python:3
映像的Linux发行版上不可用。更改您的Dockerfile以直接下载二进制文件:
上面提到的安装
yq
的说明要求的是基于Ubuntu的映像,但是python:3
Docker映像是基于Debian 10/Buster的(在写这个答案的时候):Dockerfile for
python:3
=python:3.9
=python:3.9.6
:x一个一个一个一个x一个一个二个x
错误
E: The repository 'http://ppa.launchpad.net/rmescandon/yq/ubuntu impish Release' does not have a Release file.
表示软件包
ppa:rmescandon/yq
does not support your distribution。您可以从http://ppa.launchpad.net/rmescandon/yq/ubuntu查看支持的发行版:The workaround is to just install it from source or to just download the
yq
binary itself. This is supported by yq: https://github.com/mikefarah/yq#wget:工作
使用wget下载预编译的二进制文件:
通过tar.gz压缩
纯二进制
例如,版本= v4.2.0,二进制= yq_linux_amd64
从yq's Releases page中选择一个特定的版本(最好与PPA中为Ubuntu发布的版本之一相匹配),并将您的Dockerfile修改为:
olhwl3o22#
前面的答案在我的情况下不起作用。
这是我的另一个解决方案:
从GitHub下载最新的yq可执行文件:
设置文件的执行权限:
mfpqipee3#
您还可以使用以下命令获取映像中的
yq
: