docker 创建jdk镜像

基于上一个创建的基础镜像, wenbronk/centos

Dockerfile

############################################
# version : wenbronk/centos/jdk8u121
# desc : 当前版本安装的jdk8u121
############################################

FROM wenbronk/centos
MAINTAINER wenbronk "wenbronk@163.com"

# 设置环境变量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive

# 添加 supervisord 的配置文件,并复制配置文件到对应目录下面。(supervisord.conf文件和Dockerfile文件在同一路径)
COPY supervisord.conf /etc/supervisor/supervisord.conf

# 安装jdk
# RUN mkdir /var/tmp

# 将本地的jdk重命名为jdk1.8-64.tar.gz, 并解压, 只能使用相对路径
ADD jdk-8u121-linux-x64.tar.gz /var/tmp
#目录, 上传目录可能会出现权限不足的问题, chmod +x java
#
COPY jdk1.8.0_121 /var/tmp/jdk1.8.0_121


# 设置环境变量
ENV JAVA_HOME /var/tmp/jdk1.8.0_121
ENV PATH $PATH:$PATH:$JAVA_HOME/bin

# 执行supervisord来同时执行多个命令,使用 supervisord 的可执行路径启动服务。
CMD ["/usr/bin/supervisord"]

supervisord.conf

# 配置文件包含目录和进程
# 第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。
# 第二段包含要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令.

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

 

 

因为工作需要安装jdk1.7, 方法类似, 改下名称即可

 

又一个坑:

ENV设置环境变量后, 使用exec链接人容器, 环境变量生效, 但ssh链接入容器, 环境变量不生效

posted @ 2017-02-10 22:56  bronk  阅读(802)  评论(0编辑  收藏  举报