seaswalker / posts

0 stars 0 forks source link

Spring boot docker打包示例 #46

Open seaswalker opened 3 years ago

seaswalker commented 3 years ago

Dockerfile:

FROM adoptopenjdk/openjdk8 

RUN apt-get update
RUN apt-get install -y binutils
RUN mkdir -p /opt/xxx-service/lib
RUN mkdir -p /var/log/xxx-service

COPY lib/libWeWorkFinanceSdk_Java.so /opt/xxx-service/lib
COPY target/xxx-service.jar /opt/xxx-service

ENTRYPOINT ["java", "-Denterprise.wechat.library.path=/opt/xxx-service", "-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005", "-jar", "/opt/xxx-service/xxx-service.jar"]

特别注意entry point的写法。 之后在Dockerfile目录打包:

docker build -t group/xxx-service:v1 . --no-cache

这里拉取的时候需要登录docker hub. 使用docker login命令. 之后启动:

docker run -p 5005:5005 -p 8080:8080 -e TZ=Asia/Shanghai -d xxx/service:v1 | cut -b 1-12 | pbcopy

这样可以直接把container id复制到剪贴板。

-d表示后台启动。 查看docker进程号:

docker ps

然后查看日志:

docker logs -f ${pid}

登录进入镜像:

docker exec -it ${pid} /bin/bash

停止进程:

docker stop ${pid}

最后使用nm命令查看so里面有哪些方法(符号):

nm -D xxx.so

-D是动态链接库的意思。