java - 在 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
解决方案
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
推荐阅读
- sympy - sympy 矩阵元素(分数--> 浮点数)?如何
- javascript - 具有回调函数的范围
- python - 最近邻加入距离条件
- xampp - Xampp (Ver 3.2) Mysql 无法启动
- python - 我的文件是保持打开还是自动关闭?
- python - 在 PyQt5 中,如何将普通的 QLineEdit(文本框)转换为完美的大写/大写 QLineEdit 框?
- css - CSS重复线性渐变线宽差异问题
- c - 如何使用 C 在 Postgres 中写入和读取字节
- amazon-web-services - IAM 角色密钥轮换时避免预签名 URL 过期
- c# - 属性名称作为 C# 中的 Lambda 表达式