docker里面装java,在Docker映像中安装Java

This is my very first try to create a docker image and I'm hoping someone can help me out. My Dockerfile looks roughly like this:

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"]

Basically I'm only installing Java so I can expand a jar file. When I run my makefile I get the following error:

/bin/sh: 1: /usr/lib/jvm/java-7-openjdk-amd64: Permission denied

Advice much appreciated

Edit: per request in the comment here is my 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)

which I run with

make docker_image SUDO=sudo

解决方案

I was able to install OpenJDK-8 via the steps below (taken from here). My Dockerfile inherits from phusion/baseimage-docker, which is based on Ubuntu 16.04 LTS.

# 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

To install OpenJDK-7 instead, you may need to prepend

add-apt-repository ppa:openjdk-r/ppa

such that the first step becomes

# 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;

I hope this helps.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值