1、打包微服务成单独的jar包

首先将自己的项目跳过test打包成jar,并在自己本地先用java -jar xxx.jar启动下,看是否可以启动。
随后将自己的jar包同级目录创建一个Dockerfile文件,并用notepad打开
文件无后缀。

Dockerfile:

FROM openjdk:8-jre-alpine
USER root
#中文乱码问题
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
# 时间
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 将本地项目jar包拷贝到Docker容器中的位置 target/*.jar 自己的jar包, /aaa.jar-自定义的jar包名
#COPY target/*.jar /aaa.jar 
COPY ./*.jar /aaa.jar 

#VOLUME /tmp  #挂载的docker卷

#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/aaa.jar","--spring.profiles.active=prod"] 
#aaa上面自定义的jar包名称,prod指定的环境,如dev等
EXPOSE 项目端口号 (如未指定端口可不写)

2、上传服务器

将自己的jar包和写好的Dockerfile通过xftp上传到服务器/home路径下。
cd 切换到/home路径,执行打包命令

#最后的点不能少!!!
#-t 给新构建的镜像取名
docker build -f Dockerfile -t 镜像名称:版本名 .
#如果不指定镜像名和版本名
#使用下面的命令指定打包完的镜像
docker tag 镜像id eureka-server:latest

3、根据镜像创建容器并运行

根据配置文件进行创建容器,如果application.xml中端口指定为0,即要跟上 --network=host ,让容器间在同一局域网,然后会自动分配端口

docker run -di --network=host  镜像id

如果有端口指定则创建时指定端口映射

docker run  -di  -p 主机端口号:项目端口号 镜像id

查看日志是否运行成功以及报错信息:

docker logs -f 容器名/id
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐