代码之家  ›  专栏  ›  技术社区  ›  overexchange

openjdk-8-jre-headless:中断:ca证书java(<20160321~)

  •  0
  • overexchange  · 技术社区  · 5 年前

    以下命令:

    FROM microsoft/aspnetcore-build:1.0.1
    
    ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1
    
    # This is FROM openjdk:8-jdk  
    RUN apt-get update && apt-get install -y --no-install-recommends \
            bzip2 \
            unzip \
            xz-utils \
                    apt-transport-https \
        && rm -rf /var/lib/apt/lists/*
    
    RUN apt-get install -y --no-install-recommends apt-transport-https ca-certificates
    RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys AA8E81B4331F7F50
    
    # RUN echo 'deb http://deb.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/jessie-backports.list
    RUN echo 'deb http://archive.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/jessie-backports.list
    RUN echo 'deb https://apt.dockerproject.org/repo debian-jessie main' > /etc/apt/sources.list.d/docker.list
    
    
    RUN echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks
    
    # Default to UTF-8 file.encoding
    ENV LANG C.UTF-8
    
    # add a simple script that can auto-detect the appropriate JAVA_HOME value
    # based on whether the JDK or only the JRE is installed
    RUN { \
            echo '#!/bin/sh'; \
            echo 'set -e'; \
            echo; \
            echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
        } > /usr/local/bin/docker-java-home \
        && chmod +x /usr/local/bin/docker-java-home
    
    ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
    
    # ENV JAVA_VERSION 8u111
    # ENV JAVA_DEBIAN_VERSION 8u111-b14-2~bpo8+1
    ENV JAVA_VERSION 8u171
    ENV JAVA_DEBIAN_VERSION 8u171-b11-1~bpo8+1
    
    # see https://bugs.debian.org/775775
    # and https://github.com/docker-library/java/issues/19#issuecomment-70546872
    ENV CA_CERTIFICATES_JAVA_VERSION 20140324
    
    # RUN set -x \
    #     && apt-get update \
    #     && apt-get install -y \
    #         openjdk-8-jdk="$JAVA_DEBIAN_VERSION" \
    #         ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION" \
    #     && rm -rf /var/lib/apt/lists/* \
    #     && [ "$JAVA_HOME" = "$(docker-java-home)" ]
    
    RUN set -x \
        && apt-get update \
        && apt-get install -y  openjdk-8-jre-headless ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION" \ 
        && apt-get install -y openjdk-8-jre-headless \
                openjdk-8-jdk-headless \
                openjdk-8-jre \
                openjdk-8-jdk \ 
                # ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION" \
        && rm -rf /var/lib/apt/lists/* \
        && [ "$JAVA_HOME" = "$(docker-java-home)" ]
    
    # see CA_CERTIFICATES_JAVA_VERSION notes above
    RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure
    
    ##### END OF THE JDK
    
    ##### START Jenkins Slave Node Config settings
    
    # Create Jenkins User
    RUN useradd jenkins -m -s /bin/bash
    
    RUN chown -R jenkins /home/jenkins
    RUN chgrp -R jenkins /home/jenkins
    RUN chown -R jenkins /tmp
    RUN chgrp -R jenkins /tmp
    
    # Add the jenkins user to sudoers
    RUN echo "jenkins    ALL=(ALL)    ALL" >> etc/sudoers
    
    # Must install docker to create docker images from docker container. Inception. Head... hurts.
    # container must be called with -v /var/run/docker.sock:/var/run/docker.sock
    RUN apt-get update && apt-get install -y --no-install-recommends \
        docker-engine \
    && rm -rf /var/lib/apt/lists/*
    
    # This must run after the docker install 
    RUN gpasswd -a jenkins docker
    
    USER jenkins
    

    给出错误:

    Step 16/26 : RUN set -x     && apt-get update   && apt-get install -y  openjdk-8-jre-headless ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION"  && apt-get install -y openjdk-8-jre-headless            openjdk-8-jdk-headless          openjdk-8-jre           openjdk-8-jdk   && rm -rf /var/lib/apt/lists/*  && [ "$JAVA_HOME" = "$(docker-java-home)" ]
     ---> Running in 3733400f9098
    + apt-get update
    Get:1 https://apt.dockerproject.org debian-jessie InRelease [48.7 kB]
    Get:2 http://archive.debian.org jessie-backports InRelease [166 kB]
    Ign http://deb.debian.org jessie InRelease
    Get:3 http://deb.debian.org jessie-updates InRelease [16.3 kB]
    Get:4 http://security.debian.org jessie/updates InRelease [44.9 kB]
    Get:5 http://deb.debian.org jessie Release.gpg [1652 B]
    Get:6 http://deb.debian.org jessie Release [77.3 kB]
    Get:7 https://apt.dockerproject.org debian-jessie/main amd64 Packages [7366 B]
    Get:8 http://archive.debian.org jessie-backports/main amd64 Packages [1171 kB]
    Get:9 http://deb.debian.org jessie-updates/main amd64 Packages [20 B]
    Get:10 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
    Get:11 http://security.debian.org jessie/updates/main amd64 Packages [892 kB]
    Fetched 11.5 MB in 14s (818 kB/s)
    Reading package lists...
    + apt-get install -y openjdk-8-jre-headless ca-certificates-java=20140324
    Reading package lists...
    Building dependency tree...
    Reading state information...
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     openjdk-8-jre-headless : Breaks: ca-certificates-java (< 20160321~) but 20140324 is to be installed
    E: Unable to correct problems, you have held broken packages.
    ERROR: Service 'slavedotnet' failed to build: The command '/bin/sh -c set -x    && apt-get update   && apt-get install -y  openjdk-8-jre-headless ca-certificates-java="$CA_CERTIFICATES_JAVA_VERSION"  && apt-get install -y openjdk-8-jre-headless            openjdk-8-jdk-headless          openjdk-8-jre           openjdk-8-jdk   && rm -rf /var/lib/apt/lists/*  && [ "$JAVA_HOME" = "$(docker-java-home)" ]' returned a non-zero code: 100
    

    如何解决证书依赖关系?

    0 回复  |  直到 5 年前