docker构建java项目镜像

资料参考

参考自黑马教程:10.Docker基础-自定义镜像_哔哩哔哩_bilibili

初步准备

打包好java项目jar包,和Dockerfile文件一起放到指定目录下,后续操作都是在该目录下操作,

我这边是:/usr/local/src/train-ticket/

编写Dockerfile文件

#指定jdk基础镜像
FROM openjdk:17
#配置时区,校正后续容器日志时间
ENV TZ=Asia/Shanghai
#拷贝java项目包
COPY ./member-0.0.1-SNAPSHOT.jar /member.jar
#镜像需要暴露的端口
EXPOSE 8010 8719
#入口,java项目的启动命令
ENTRYPOINT ["java","-jar","/member.jar"]

执行Dockerfile命令

注意这边镜像名和标签替换成你自己的,后面的点不要漏了

docker build -t member:1.0 .

很快就能构建成功了:

 容器日志的时间校正

由于jdk和java项目镜像我是分别构建的,

所以其中一个Dockerfile文件有设置时区就可以,两个都设置也可以。

#配置时区,校正后续容器日志时间
ENV TZ=Asia/Shanghai

容器日志的中文乱码

 一开始我是直接在以上Dockerfile文件中配置的:ENV LANG=en_US.UTF-8,

但试了不行(还是有部分乱码),

最后我这边是通过在 docker run 的时候加上  -e LANG=en_US.UTF-8,完整如下:

docker run -itd \
 --name member \
 --privileged=true \
 -p 8010:8010 \
 -e LANG=en_US.UTF-8 \
 member:1.0

对比图:

要将Java项目打包为Docker镜像,你可以按照以下步骤操作: 1. 创建一个Dockerfile:在项目根目录中创建一个名为"Dockerfile"的文件。你可以使用任何文本编辑器打开该文件。 2. 指定基础镜像:在Dockerfile中,使用以下命令指定一个适合Java应用程序的基础镜像。例如,可以选择openjdk镜像: ``` FROM openjdk:8-jdk-alpine ``` 这个示例使用了基于Alpine Linux的OpenJDK 8。 3. 复制应用程序文件:使用以下命令将Java应用程序文件复制到镜像中的特定目录。假设你的Java应用程序的可执行JAR文件在根目录的"target"文件夹中,可以使用以下命令: ``` COPY ./target/your-application.jar /app/your-application.jar ``` 这个示例将"your-application.jar"复制到镜像中的"/app"目录。 4. 设置工作目录:使用以下命令设置镜像的工作目录: ``` WORKDIR /app ``` 这个示例将工作目录设置为"/app"。 5. 安装依赖:如果你的Java应用程序有其他依赖项(如配置文件、静态资源等),可以使用以下命令将它们复制到镜像中。 ``` COPY ./path/to/dependencies /app/dependencies ``` 6. 安装项目依赖:如果你的Java应用程序使用了Maven或Gradle等构建工具,可以使用以下命令将项目依赖项复制到镜像中。 ``` COPY ./pom.xml /app/pom.xml RUN mvn dependency:resolve ``` 这个示例将"pom.xml"文件复制到镜像中,并使用Maven解析依赖项。 7. 暴露端口:如果你的Java应用程序监听了某个特定端口,可以使用以下命令在镜像中暴露该端口。 ``` EXPOSE 8080 ``` 这个示例将端口8080暴露出来。 8. 启动应用程序:使用以下命令定义容器启动时执行的指令。 ``` CMD ["java", "-jar", "your-application.jar"] ``` 这个示例将执行"java -jar your-application.jar"来启动应用程序。 9. 构建镜像:在包含Dockerfile的项目根目录中,使用以下命令构建镜像: ``` docker build -t your-image-name . ``` 这个示例将构建一个名为"your-image-name"的镜像。 10. 运行容器:使用以下命令运行容器: ``` docker run -p 8080:8080 your-image-name ``` 这个示例将使用刚刚构建镜像在本地的8080端口上运行容器。 这样,你就成功将Java项目打包为Docker镜像。请根据你的实际需求进行相应修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值