gpt4 book ai didi

dockerfile - 在Docker镜像中安装Java

转载 作者:行者123 更新时间:2023-12-03 21:17:47 26 4
gpt4 key购买 nike

这是我第一次尝试创建docker镜像,我希望有人可以帮助我。我的Dockerfile大致如下所示:

FROM mybaseimage:0.1
MAINTAINER ...

ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
RUN sed 's/main$/main universe/' -i /etc/apt/sources.list

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update

RUN apt-get install -y openjdk-7-jre && apt-get clean &&\
mkdir temp_dir && cd temp_dir && \
${JAVA_HOME}/bin/jar -xvf somejar.jar &&\
cd ..
ENTRYPOINT ["somescript.sh"]

基本上,我只安装Java,因此可以扩展jar文件。运行生成文件时,出现以下错误:

/ bin / sh:1:/ usr / lib / jvm / java-7-openjdk-amd64:权限被拒绝

我一直在尝试遵循以下示例:
https://registry.hub.docker.com/u/barnybug/openjdk-7-jre/dockerfile/

意见非常感谢

编辑:每个请求在评论中是我的makefile:
DOCKER_REGISTRY=registry.mycompany.com
DOCKER_IMAGE=appimage-myapp
DOCKER_TAG=3.0

SUDO=

ARCHIVE_NAME=$(DOCKER_IMAGE):$(DOCKER_TAG)
REPO_ARCHIVE_NAME=$(DOCKER_REGISTRY)/$(ARCHIVE_NAME)
BASE_IMAGE_ARCHIVE=$(DOCKER_IMAGE)_$(DOCKER_TAG).tar.gz

all: $(BASE_IMAGE_ARCHIVE)

.PHONY: docker_image

docker_image: Dockerfile
$(SUDO) docker build -t $(ARCHIVE_NAME) .

$(BASE_IMAGE_ARCHIVE): docker_image
$(SUDO) docker tag -f $(ARCHIVE_NAME) $(REPO_ARCHIVE_NAME)
$(SUDO) docker push $(REPO_ARCHIVE_NAME)
$(SUDO) docker save $(ARCHIVE_NAME) | gzip -c > $@
$(SUDO) docker rmi $(REPO_ARCHIVE_NAME)

我一起跑
make docker_image SUDO=sudo

最佳答案

我可以通过以下步骤安装OpenJDK-8(摘自here)。我的Dockerfile继承自基于Ubuntu 16.04 LTSphusion/baseimage-docker

# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;

# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;

# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME

要安装 OpenJDK-7,您可能需要先添加
add-apt-repository ppa:openjdk-r/ppa

这样第一步就变成了
# Install OpenJDK-7
RUN add-apt-repository ppa:openjdk-r/ppa && \
apt-get update && \
apt-get install -y openjdk-7-jdk && \
apt-get install -y ant && \
apt-get clean;

我希望这有帮助。

关于dockerfile - 在Docker镜像中安装Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com