我的文件是这样的。但是当我构建时,我会得到以下错误。如果我按照我的码头形象做这件事,并在它上做了狂欢,这是奇怪的工作。
docker build -t mydocker:latest
FROM amazonlinux:2022
RUN mkdir -p /APP
WORKDIR APP
RUN yum update -y
RUN yum install wget -y
RUN mkdir -p /usr/share/man/man1/
RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
RUN yum install tar -y
RUN yum install gzip -y
COPY openjdk-17_linux-x64_bin.tar.gz /APP
RUN tar xvf openjdk-17_linux-x64_bin.tar.gz
Step 11/11 : RUN tar xvf openjdk-17_linux-x64_bin.tar.gz
---> Running in 83a94400e4b7
jdk-17/bin/jar
jdk-17/bin/jarsigner
jdk-17/bin/java
jdk-17/bin/javac
jdk-17/bin/javadoc
jdk-17/bin/javap
jdk-17/bin/jcmd
jdk-17/bin/jconsole
jdk-17/bin/jdb
jdk-17/bin/jdeprscan
jdk-17/bin/jdeps
jdk-17/bin/jfr
jdk-17/bin/jhsdb
jdk-17/bin/jimage
jdk-17/bin/jinfo
jdk-17/bin/jlink
jdk-17/bin/jmap
jdk-17/bin/jmod
jdk-17/bin/jpackage
jdk-17/bin/jps
jdk-17/bin/jrunscript
jdk-17/bin/jshell
jdk-17/bin/jstack
jdk-17/bin/jstat
jdk-17/bin/jstatd
jdk-17/bin/keytool
jdk-17/bin/rmiregistry
jdk-17/bin/serialver
jdk-17/conf/logging.properties
jdk-17/conf/management/jmxremote.access
jdk-17/conf/management/jmxremote.password.template
jdk-17/conf/management/management.properties
jdk-17/conf/net.properties
jdk-17/conf/sdp/sdp.conf.template
jdk-17/conf/security/java.policy
jdk-17/conf/security/java.security
jdk-17/conf/security/policy/README.txt
jdk-17/conf/security/policy/limited/default_US_export.policy
jdk-17/conf/security/policy/limited/default_local.policy
jdk-17/conf/security/policy/limited/exempt_local.policy
jdk-17/conf/security/policy/unlimited/default_US_export.policy
jdk-17/conf/security/policy/unlimited/default_local.policy
jdk-17/conf/sound.properties
jdk-17/include/classfile_constants.h
jdk-17/include/jawt.h
jdk-17/include/jdwpTransport.h
jdk-17/include/jni.h
jdk-17/include/jvmti.h
jdk-17/include/jvmticmlr.h
jdk-17/include/linux/jawt_md.h
jdk-17/include/linux/jni_md.h
jdk-17/jmods/java.base.jmod
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now发布于 2022-09-15 19:47:18
我把你的Dockerfile改为:
FROM amazonlinux:2022
RUN mkdir -p /APP
WORKDIR APP
RUN yum update -y
RUN yum install wget -y
RUN mkdir -p /usr/share/man/man1/
RUN wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
RUN yum install tar -y
RUN yum install gzip -y
RUN tar xvf openjdk-17_linux-x64_bin.tar.gz -C /APP并且能够很好地创建容器。如果我用了你的Dockerfile,我会得到:
Step 10/11 : COPY openjdk-17_linux-x64_bin.tar.gz /APP
COPY failed: file not found in build context or excluded by .dockerignore: stat openjdk-17_linux-x64_bin.tar.gz: file does not exist因为COPY从主机文件系统复制,而不是从Docker文件系统复制。也许您的本地openjdk-17_linux-x64_bin.tar.gz副本被截断了。
或者,由于您使用的是Amazon停靠映像,所以您可以使用Amazon的Java (Corretto),如下所示:
FROM amazonlinux:2022
RUN mkdir -p /APP
WORKDIR APP
RUN yum update -y
RUN yum install wget -y
RUN mkdir -p /usr/share/man/man1/
RUN yum install tar -y
RUN yum install gzip -y
RUN yum install java-11-amazon-corretto-headless -y假设你想要“无头”版本。
我的码头版本是"20.10.18“。
https://stackoverflow.com/questions/73736248
复制相似问题