Dockerfile构建包含JDK的Ubuntu镜像

以下是一个简单的Dockerfile,用于基于`ubuntu:22.04`镜像创建一个新的镜像,并在其中安装你提供的OpenJDK 11.0.22_7的离线安装包。
# 指定基础镜像
FROM ubuntu:22.04

# 设置环境变量,防止在复制或解压时出现问题
ENV DEBIAN_FRONTEND=noninteractive

# 安装必要的依赖
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    tar \
    && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /tmp

# 复制JDK离线安装包到/tmp目录
COPY ./apply_in_docker/OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz .

# 解压JDK安装包到/opt/java目录
RUN mkdir -p /opt/java && \
    tar -zxvf OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz -C /opt/java && \
    rm OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz

# 设置JAVA_HOME环境变量
ENV JAVA_HOME /opt/java/openjdk-11.0.22+7
ENV PATH $PATH:$JAVA_HOME/bin

# 清理缓存
RUN rm -rf /var/lib/apt/lists/*

# 容器启动时执行的命令(如果需要)
# CMD ["/bin/bash"]

# 或者如果你想设置默认的Java应用命令,可以像这样:
# CMD ["java", "-version"]
使用上述Dockerfile,你可以构建一个新的Docker镜像,它包含OpenJDK 11.0.22_7的JDK。要构建这个镜像,请保存Dockerfile到一个文件中,然后使用以下命令:

```sh
docker build -t my-ubuntu-jdk11:11.0.22-7 .
```

上述命令假设Dockerfile位于当前目录,并且`.`代表Dockerfile所在的目录。`-t`选项用于给镜像命名和打标签。

构建完成后,你可以使用`docker images`命令来查看新构建的镜像,并通过`docker run`命令来运行容器:

docker run -it --rm my-ubuntu-jdk11:11.0.22-7 java -version
这将运行一个交互式的容器,并输出Java的版本信息来验证JDK是否正确安装。

注意:Dockerfile中的`CMD`指令是容器启动时的默认命令。在这个例子中,我注释掉了CMD指令,你可以根据你的需求来设置合适的启动命令。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤构建本地JDK镜像并基于该镜像构建BWS镜像: 1. 在本地下载JDK安装包,例如 `jdk-8u291-linux-x64.tar.gz`。 2. 在本地创建一个目录,例如 `~/docker/jdk/`。 3. 将JDK安装包移动到该目录下。 4. 在该目录下创建一个 `Dockerfile` 文件,内容如下: ``` FROM ubuntu:latest # 安装必要的软件包 RUN apt-get update && \ apt-get install -y wget && \ apt-get install -y tar && \ apt-get install -y gzip && \ apt-get install -y ca-certificates && \ apt-get install -y --no-install-recommends openjdk-8-jdk && \ apt-get clean # 将JDK安装包复制到容器中 COPY jdk-8u291-linux-x64.tar.gz /opt/ # 解压JDK安装包并删除 RUN tar -xzf /opt/jdk-8u291-linux-x64.tar.gz -C /opt/ && \ rm /opt/jdk-8u291-linux-x64.tar.gz # 设置环境变量 ENV JAVA_HOME /opt/jdk1.8.0_291 ENV PATH $JAVA_HOME/bin:$PATH ``` 5. 在该目录下运行以下命令构建本地JDK镜像: ``` docker build -t myjdk:latest . ``` 6. 在BWS项目根目录下创建一个 `Dockerfile` 文件,内容如下: ``` FROM myjdk:latest # 将BWS发布包复制到容器中 COPY bws-1.0.0.tar.gz /opt/ # 解压BWS发布包并删除 RUN tar -xzf /opt/bws-1.0.0.tar.gz -C /opt/ && \ rm /opt/bws-1.0.0.tar.gz # 设置环境变量 ENV BWS_HOME /opt/bws-1.0.0 ENV PATH $BWS_HOME/bin:$PATH # 启动BWS CMD ["sh", "-c", "cd $BWS_HOME/bin && ./startup.sh && tail -f $BWS_HOME/logs/catalina.out"] ``` 7. 在BWS项目根目录下运行以下命令构建BWS镜像: ``` docker build -t mybws:latest . ``` 这样就可以构建出基于本地JDK镜像的BWS镜像了。在运行BWS容器时,只需要使用 `mybws:latest` 镜像即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值