Linux系统环境下通过docker部署springcloud项目

经历了学习springboot,又经历学习了基于springboot的springcloud微服务开发

学习就要有所沉淀,记录一下学习踩坑之旅。

上一篇博客介绍了如何部署安装docker以及相关服务环境的配置,传送门:

https://blog.csdn.net/romanticRose/article/details/101351679

常用的docker命令:

查看镜像:docker images -a

停止镜像:docker stop $(docker ps -a -q)

删除镜像:docker rmi <imageid>

查看容器:docker ps

删除容器:docker rm 容器id

启动服务:docker start ace-dbxt(container容器id)

服务交互:docker attach ace-dbxt

构建镜像:docker build -t ace-dbxt .(示例)

运行镜像:docker run -d --network host --name ace-dbxt -p 8763:8763 -p 9423:9423 -it -v /etc/localtime:/etc/localtime:ro ace-dbxt8763 /bin/bash
--network:host方式启动
--name: 服务名
-p: 开放端口

部署安装springcloud服务

首先需要准备maven打好的服务jar包以及配置dockerfile文件

Dockerfile 文件

FROM hub.c.163.com/library/java:8-alpine

VOLUME /tmp

ADD ace-center.jar app.jar    ###服务jar包

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]



EXPOSE 8761             ###开放端口

进入服务路径目录 执行命令构建docker镜像(示例)

cd 服务路径  -->   docker build -t ace-center8761 .

注意:命令结尾的.代表同级目录

Host方式启动镜像

docker run -d --network host --name ace-center -p 8761:8761 -it ace-center8761 /bin/bash

验证服务即可,其他微服务往注册中心注册相同操作;

开发部署问题整理

修改docker容器时间

n -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

echo "Asia/Shanghai" > /etc/timezone

 解决docker下启动jar包服务时间不同步

修改dockerfile文件

FROM hub.c.163.com/library/java:8-alpine
VOLUME /tmp
ADD ace-dbxt.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Duser.timezone=GMT+08","/app.jar"]

EXPOSE 8763

解决docker镜像字体问题

FROM hub.c.163.com/library/java:latest
VOLUME /tmp
ADD ace-workflow-1.0-SNAPSHOT.jar app.jar
#拷贝字体文件
COPY ./simsun.ttf /usr/share/fonts/simsun.ttf 
#设置字符集
ENV LANG en_US.UTF-8
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

EXPOSE 8082

首先找到字体文件放置到jar包同级目录下 (此项目中添加的是黑体字体,具体字体文件如何获取网上可查找)

不积硅步无以至千里,不积小流无以成江海。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章