首页 > 解决方案 > 在 Docker php:7.1-apache-stretch 上安装 java

问题描述

已经抨击这个 docker 配置文件几个小时了,我开始得出结论这是不可能的。帮我改变主意!

我正在尝试在 docker 映像中安装 open-jdk,如下所示:

FROM php:7.1-apache-stretch
# NOTE: We cannot upgrade to 7.2+ until we remove all uses of mcrypt. It 
is officially removed.

RUN echo 'deb http://deb.debian.org/debian stretch-backports main' > 
/etc/apt/sources.list.d/backports.list
RUN apt-get update
RUN apt-get install -y stretch-backports
RUN apt-get install -y default-jdk-headless ca-certificates-java

并得到以下错误:

E: Unable to locate package stretch-backports
ERROR: Service 'app' failed to build: The command '/bin/sh -c apt-get     
install -y stretch-backports' returned a non-zero code: 100

标签: javaphpdockerdockerfile

解决方案


Success! I was able to resolve by following this:

https://assertnull.com/installing-java-in-docker-php/

Here's my dockerfile now:

FROM php:7.1-apache-stretch
# NOTE: We cannot upgrade to 7.2+ until we remove all uses of mcrypt. It is officially removed.

# Hack for debian-slim to make the jdk install work below.
RUN mkdir -p /usr/share/man/man1

# repo needed for jdk install below.
RUN echo 'deb http://deb.debian.org/debian stretch-backports main' > /etc/apt/sources.list.d/backports.list

# Update image & install application dependant packages.
RUN apt-get update && apt-get install -y \
nano \
libxext6 \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libmcrypt-dev \
libxslt-dev \
libpcre3-dev \
libxrender1 \
libfontconfig \
uuid-dev \
ghostscript \
curl \
wget \
ca-certificates-java

RUN apt-get -t stretch-backports install -y default-jdk-headless

推荐阅读