Dockerfile是一个包含构建Docker镜像所需指令的文本文件。
Dockerfile定义了一系列的操作和参数,用于自动化镜像的构建过程。这些指令以特定的格式书写,指导Docker如何逐步构建一个自定义的镜像。通过Dockerfile,用户可以实现应用程序的快速部署和持续集成。Dockerfile不仅是构建Docker镜像的核心,也是实现应用容器化和微服务架构的重要工具。
细节具体细节可以跳转查看这一篇IDEA一键部署Docker应用
提示
基于ubuntu 20.04安装
创建test-app-dockerFile.file(名字可以自定义)
# 使用官方OpenJDK 8镜像作为基础镜像 FROM openjdk:8 # 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 设置环境变量 ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 ENV JAVA_OPTS="-Xms256m -Xmx256m -Xmn128m" # 创建一个持久化数据的卷(可选,取决于你的应用是否需要) VOLUME ["/tmp"] # 创建一个应用目录 RUN mkdir -p /opt/app WORKDIR /opt/app # 将构建好的jar包添加到容器中 ADD ./test-app-service-1.0.0.jar /opt/app/ # 暴露端口 EXPOSE 3001 # 设置容器启动时执行的命令 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "test-app-service-1.0.0.jar"]
test-app-service-1.0.0.jar 换成自己项目maven打包后项目的jar包名称
暴露端口改成自己项目的定义的端口号
创建update-test-app.sh(名字可以自定义)
#停止容器 echo "=========停止容器=========" sudo docker stop test-app echo "=========删除容器=========" #删除容器 sudo docker rm -f test-app echo "=========删除镜像=========" #删除镜像 sudo docker rmi -f test-app echo "=========编译镜像并启动=========" #test-app echo "=====test-app服务正在编译...=====" sudo docker build -t test-app -f test-app-dockerfile . sudo docker run -d --name test-app --restart always -p 3001:3001 --net sup-network test-app echo "=====test-app服务已启动=====" echo "=========升级结束========="
sudo是因为我用ubuntu系统,如果是其他linux使用root账户登录应该不用加sudo也可以
test-app 改成 自己项目的名称
端口号改成自己项目的端口号,dockerfile是3001,:符号之后的端口就必须是3001,:符号之前的端口可以改(没有特殊情况不推荐改,最好保持一致,除非端口被占用了)
-net sup-network
这个命令是将项目添加到自定义的网络组中,如果不想添加也可以不添加
通过idea左边的maven进行打包处理
创建/opt/app 目录文件夹 通过xftp将上述三个文件,传到这个文件夹中
由于项目是基于jdk构建的所以需要先导入jdk的镜像,不然会构建失败
docker load < jdk8-images.tar
首先进入这个文件夹
cd /opt/app
然后给.sh文件全部权限
chmod 777 update-test-app.sh
输入启动命令
./update-test-app.sh
等待部署结束即可查看
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!