apt-get错误:找不到'docker-ce'的版本'5:19.03.4〜3-0〜ubuntu-bionic' [英] apt-get error: Version '5:19.03.4~3-0~ubuntu-bionic' for 'docker-ce' was not found

查看:286
本文介绍了apt-get错误:找不到'docker-ce'的版本'5:19.03.4〜3-0〜ubuntu-bionic'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

文档 提供语法以安装docker-ce的特定版本:

Documentation provides syntax to install specific version of docker-ce:

$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

在类似的行上,dockerfile以下使用上面的语法:

On similar line, below dockerfile uses the above syntax:

FROM jenkins/jenkins:lts

ENV DEBIAN_FRONTEND=noninteractive

USER root

ARG DOCKER_GID=497

# Create Docker Group with GID
# Set default value of 497 if DOCKER_GID set to blank string by Docker compose
RUN groupadd -g ${DOCKER_GID:-497} docker

# Install base packages for docker, docker-compose & ansible
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 && \
RUN apt-get update -y && \
    apt-get -y install bc \
                    gawk \
                    libffi-dev \
                    musl-dev \
                    apt-transport-https \
                    curl \
                    python3 \
                    python3-dev \
                    python3-setuptools \
                    gcc \
                    make \
                    libssl-dev \
                    python3-pip 

# Used at build time but not runtime
ARG DOCKER_VERSION=5:19.03.4~3-0~ubuntu-bionic

# Install the latest Docker CE binaries and add user `jenkins` to the docker group
RUN apt-get update && \
    apt-get -y install apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common && \
    curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
    add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
      $(lsb_release -cs) \
      stable" && \
    apt-get update && \
    apt-get -y install docker-ce=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
        docker-ce-cli=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
        containerd.io && \
    usermod -aG docker jenkins

ARG DOCKER_COMPOSE=1.24.1

# Install docker compose
RUN curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE:-1.24.1}/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose && \
    chmod +x /usr/local/bin/docker-compose

RUN pip3 install ansible boto3

# Change to jenkins user
USER jenkins

# Add jenkins plugin
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt


在以下行(构建时)失败:


fails at line below(on build):

apt-get -y install docker-ce=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
            docker-ce-cli=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
            containerd.io && \

从本地docker主机中的命令apt-cache madison docker-ce | awk 'NR==1{print $3}'检索默认值的地方

where default values are retrieved from command: apt-cache madison docker-ce | awk 'NR==1{print $3}' in my local docker host

其中docker-compose build给出以下错误:

Reading state information...
E: Version '5:19.03.4~3-0~ubuntu-bionic' for 'docker-ce' was not found
E: Version '5:19.03.4~3-0~ubuntu-bionic' for 'docker-ce-cli' was not found
ERROR: Service 'jenkins' failed to build: The command '/bin/sh -c apt-get update &&     apt-get -y install apt-transport-https     ca-certificates     curl     gnupg-agent     software-properties-common &&     curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey &&     add-apt-repository       "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")       $(lsb_release -cs)       stable" &&     apt-get update &&     apt-get -y install docker-ce=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic}         docker-ce-cli=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic}         containerd.io &&     usermod -aG docker jenkins' returned a non-zero code: 100


apt-get -y install docker-ce docker-ce-cli containerd.io能够下载并安装最新版本的ubuntu软件包,但是为什么下载和安装特定版本的ubuntu软件包失败?


apt-get -y install docker-ce docker-ce-cli containerd.io is able to download and install the latest version of ubuntu packages, but why download and install of specific version of ubuntu package fails?

apt-get -y install docker-ce=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
                docker-ce-cli=${DOCKER_VERSION:-5:19.03.4~3-0~ubuntu-bionic} \
                containerd.io && \

推荐答案

您已根据构建主机上可用的内容(而不是所构建的容器映像内的可用内容)选择了Docker版本. jenkins:lts映像基于Debian Stretch,而不是Ubuntu Bionic.

You've selected Docker versions based on what's available on your build host, not what's available inside the container image you're building. The jenkins:lts image is based on Debian Stretch, not Ubuntu Bionic.

Dockerfile实际上只是在运行相当普通的Docker操作.因此,例如,您可以运行docker run -ti -u root jenkins/jenkins:lts /bin/bash,手动运行RUN脚本,并检查容器内的apt-cache输出:

Dockerfiles are actually just running fairly ordinary Docker operations. So, for example, you can run docker run -ti -u root jenkins/jenkins:lts /bin/bash, run your RUN scripts by hand, and check the apt-cache output inside the container:

# apt-cache madison docker-ce
 docker-ce | 5:19.03.4~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
 docker-ce | 5:19.03.3~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
 docker-ce | 5:19.03.2~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
 docker-ce | 5:19.03.1~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages
 docker-ce | 5:19.03.0~3-0~debian-stretch | https://download.docker.com/linux/debian stretch/stable amd64 Packages

此外,失败的docker构建应该保留部分完整的映像;因此您可以直接使用它来调查故障.举一个失败的步骤RUN false的示例:

Also, a failed docker build should leave the partially-complete image around; so you can use that directly to investigate a failure. As an example with a trivially failing step RUN false:

⋮
Removing intermediate container baaeab34bb8c
 ---> 6d34bab07796
Step 3/3 : RUN false
 ---> Running in 8347f442dfaa
The command '/bin/sh -c false' returned a non-zero code: 1

6d34bab07796图像仍然保留.您可以将其传递给docker run并调查命令失败的原因. 8347f442dfaa容器也保留了,尽管已退出;您也可以使用各种docker container子命令进行调查.

The 6d34bab07796 image is left around. You can pass that to docker run and investigate why the command failed. The 8347f442dfaa container is also left around, though exited; you can use the various docker container subcommands to investigate it as well.

这篇关于apt-get错误:找不到'docker-ce'的版本'5:19.03.4〜3-0〜ubuntu-bionic'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆