暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker学习笔记-第1个Java应用

测试开发吃货 2021-12-10
332

使用Docker搭建Java开发环境

编写Hello World

哈,老规矩,新手必写-Hello World。
创建Hello.java文件,并写入如下代码。

import java.util.*;

public class Hello{
  public static void main(String[] argss){
    System.out.println("Hello World!");
    System.out.println(new Date());
  }
}

编写DockerFile

新增文件dockerfile,写入如下代码

#基于Java 9
FROM java:9

#设置工作目录
WORKDIR /app

#复制文件件到工作目录
COPY . /app

#设置Java环境变量
ENV PATH=$PATH:$JAAVA_HOME/bin
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

#编译
RUN ["/usr/lib/jvm/java-9-openjdk-amd64/bin/javac""Hello.java"]

#运行
ENTRYPOINT ["/usr/lib/jvm/java-9-openjdk-amd64/bin/java""Hello"]

构建镜像

使用docker build命令来构建Docker镜像

docker build --rm -f "/opt/docker/java/DockerFile" -t java-hello:latest .

这里一定要注意标注的这个点,这个点其实是镜像上下文路径,点代表当前路径。

当构建的时候,由用户指定构建镜像的上下文路径,而 docker build 会将这个路径下所有的文件都打包上传给 Docker 引擎,引擎内将这些内容展开后,就能获取到所有指定上下文中的文件了。

比如说 dockerfile 中的 COPY . /app,其实拷贝的并不是本机目录下当前路径的所有文件,而是 docker引擎中展开的构建上下文中的当前目录下的所有文件,所以如果拷贝的文件超出了构建上下文的范围,Docker引擎 是找不到那些文件的。就会出现下面的报错。

执行

镜像构建完成后,先查看下镜像情况。docker images

然后使用docker run命令即可执行该容器获得结果。docker run java-hello

至此,使用Docker搭建Java开发环境,并运行hello world应用成功。


文章转载自测试开发吃货,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论