我有一个量角器,我需要在Dockerfile中使用java
来运行selenium-server.jar
文件。
这是我的Dockerfile
FROM node:latest
ENV CHROME_VERSION "google-chrome-stable"
RUN sed -i -- 's&deb http://deb.debian.org/debian jessie-updates main&#deb http://deb.debian.org/debian jessie-updates main&g' /etc/apt/sources.list \
&& apt-get -o Acquire::Check-Valid-Until=false update && apt-get -o Acquire::Check-Valid-Until=false install wget -y
ENV CHROME_VERSION "google-chrome-stable"
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list \
&& apt-get -o Acquire::Check-Valid-Until=false update && apt-get -qqy --allow-unauthenticated install ${CHROME_VERSION:-google-chrome-stable}
# Add the dependencies to get the xenial apt sources
RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN apt-get -y update
# Add these silent accept - since oracle installer asks for permission to install java-version-8
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections
# Install java-8
RUN apt install -y oracle-java8-installer && apt install oracle-java8-set-default
此设置一直运行到昨天,但是从那以后我一直收到此错误
download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
oracle-java8-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt install -y oracle-java8-installer && apt install oracle-java8-set-default' returned a non-zero code: 100
现在在将此问题标记为重复之前,请查看我已经经历了很多类似的SO帖子并应用了提及的所有更改,但错误仍然存在或出现新的错误,这又导致无法解决此问题下载错误。
我已经尝试了this,this,this和this,this,this,{{3} },但无法解决它。
完整的日志文件为this。如果需要,我可以发布尝试应用上述解决方案时遇到的错误。
寻找任何指针来解决此问题。
答案 0 :(得分:0)
除非您明确告知不要(link: function(scope, elm, attrs) {
var slider;
scope.$watch('slideit', function() {
if(slider) {
slider.destroySlider();
}
scope.bestDeals = scope.slideit;
if (scope.bestDeals && scope.bestDeals.length > 0) {
$timeout(function() {
slider = elm.bxSlider({
captions: true,
auto: true,
autoControls: true,
slideWidth: 110,
minSlides: 1,
maxSlides: 6,
moveSlides: 1,
slideMargin: 10,
pager: false,
autoHover: true,
});
});
}
});
scope.$on('destroy', function() {
if (slider) {
slider.destroySlider();
}
});
},
),否则Docker将记住运行每个命令的结果。特别是,如果认为已经完成此操作,它将跳过运行docker build --no-cache
步骤。
与此同时,Debian和Ubuntu存储库经常更新,并且在更新时,它们会删除软件包的旧版本。这意味着,如果您使用的是昨天版本的软件包缓存,则在重新运行apt-get update
之前,您将看到“下载失败”错误,就像您看到的一样。
在Docker上下文中,对此的正确答案是始终在同一apt-get update
步骤中运行apt-get update
和apt-get install
。您可以将RUN
的结尾更改为
Dockerfile
一旦您已经走过了最初的开发阶段,最好在Dockerfile中只有一个RUN apt-get update -y \
&& apt install oracle-java8-installer oracle-java8-set-default
命令,这样一来便可以安装所需的所有运行时依赖项。
答案 1 :(得分:0)
您真的需要Oracle JDK吗?在过程中,我使用来自openjdk的Dockerfile的内容从节点构建映像并安装了Java:https://github.com/docker-library/openjdk/blob/master/8/jdk/Dockerfile
不过,在您的情况下,我将构建集中式硒服务器或在CI管道中使用java -cp "Test.jar:lib/*" my.package.MainClass
。