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

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

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

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

Linux服务器部署安装docker以及各种服务配置(一)_linuxdocker安装部署-CSDN博客

一、常用的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  #退出容器交互命令 Ctrl+P,Ctrl+Q

#加上 --sig-proxy=false,这样detach时不会停止容器服务,按Ctrl+C退出

docker attach --sig-proxy=false containername/containerid

构建镜像: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容器时间

ln -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

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

ADD ace-dbxt.jar app.jar

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

EXPOSE 8763

docker-compose配置下: 

  ace-center:
    image: ace-center8761
    container_name: ace-center
    build: /home/aeccspringcloud/service/ace-center-server/Dockerfile
    ports:
      - "8761:8761"
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
    network_mode: "host"
    restart: always

解决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包同级目录下 (此项目中添加的是黑体字体,具体字体文件如何获取网上可查找)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值