Dockerfile Alpine Image APK无法找到Java 8

标签 docker alpine alpine-package-keeper

我想减少我的docker镜像,而改用 Alpine 基础镜像。这导致bash无法找到合适的问题。原来,我必须改用apk。但是,它似乎找不到我需要的Java版本。这是我的dockerfile

#Use alpine golang
FROM golang:alpine

#Get the code from local code commit repo
WORKDIR /go/src/xxx
COPY . /go/src/xxx

#Install Java and cleanup after in the same layer
RUN apk update && apk add openjdk-8-jre-headless && rm -rf /var/lib/apt/lists/*

#Install dependencies recursively and remove the third_party directory after it has been used for compiling.
RUN go get ./... && go run setup.go && RUN rm -rf third_party
#More commands...



 ---> 32a6b6b5f196 
Step 4/8 : RUN apk update && apk add openjdk-8-jre-headless && rm -rf /var/lib/apt/lists/* 
 ---> Running in bc48930e48be 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz 
v3.9.4-4-gd5dd5c1cd0 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main] 
v3.9.4-5-gcfdf5452f1 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community] 
OK: 9766 distinct packages available 
  openjdk-8-jre-headless (missing): 
·[91mERROR: unsatisfiable constraints: 
·[0m    required by: world[openjdk-8-jre-headless] 
The command '/bin/sh -c apk update && apk add openjdk-8-jre-headless && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 1

我也尝试过
RUN apk update && apk add -t jessie-backports openjdk-8-jre-headless ca-certificates-java && rm -rf /var/lib/apt/lists/*

根据https://unix.stackexchange.com/questions/342403/openjdk-8-jre-headless-depends-ca-certificates-java-but-it-is-not-going-to-be的说法,但这也失败了,不确定-t标志是否出错:
Step 4/7 : RUN apk update && apk add -t jessie-backports openjdk-8-jre-headless ca-certificates-java && rm -rf /var/lib/apt/lists/* 
 ---> Running in 1e2ef22e7c16 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz 
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz 
v3.9.4-4-gd5dd5c1cd0 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main] 
v3.9.4-5-gcfdf5452f1 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community] 
OK: 9766 distinct packages available 
·[91mERROR: unsatisfiable constraints: 
·[0m  openjdk-8-jre-headless (missing): 
    required by: jessie-backports-0[openjdk-8-jre-headless] 
  ca-certificates-java (missing): 
    required by: jessie-backports-0[ca-certificates-java] 
The command '/bin/sh -c apk update && apk add -t jessie-backports openjdk-8-jre-headless ca-certificates-java && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 3 

最佳答案

Alpine使用的软件包存储库与Debian或Ubuntu完全不同。软件包openjdk-8-jre-headless不存在。您可以检查此here并找到适合您需求的正确软件包。

关于Dockerfile Alpine Image APK无法找到Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56337008/

相关文章:

caching - 如何清除docker容器内的缓存

postgresql - 在 Docker Compose 中更改 postgres 容器服务器端口

docker - Docker Hub镜像法律背景

pandas - 为什么在 Alpine Linux 上安装 Pandas 需要很长时间

docker - 我可以在docker容器中使用pppoe吗?

nginx - 在 Alpine Linux 3.11 上编译 Nginx

Docker Alpine 镜像 + grpc : Warning: insecure environment read function 'getenv' used

docker : ERROR: unsatisfiable constraints

linux - 如何在 alpine 的 apk 中禁用 SSL 验证?

docker - 如何使用 apk 在 Alpine 容器中安装 terraform 0.12?