seaswalker / posts

0 stars 0 forks source link

Docker单元测试 #49

Open seaswalker opened 3 years ago

seaswalker commented 3 years ago

Dockerfile:

FROM maven:3.6.3-openjdk-8

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

ENV ENTERPRISE_WECHAT_LIBRARY_PATH /opt/xxx-service/sdk
COPY xxx-service/ /opt/xxx-service

WORKDIR /opt/xxx-service

ENTRYPOINT ["mvn", "test", "-Dtest=com.github.com#testGetMediaFile"]
# ENTRYPOINT ["env"]
# ENTRYPOINT ["tree", "/opt/xxx-service/sdk"]

对于maven,一个很麻烦的是配置文件和仓库(在docker里面可能需要下载很多依赖,导致单元测试启动非常慢)。此时可以将本地的maven仓库挂载到docker镜像:

docker run -p 8080:8080 -v /Users/xxx/data:/data -v /Users/xxx/.m2:/root/.m2 -e TZ=Asia/Shanghai xxx/service-unittest:v1

另外注意Dockerfile里面的copy命令是不能拷贝上层目录的,即: ../../dir这种,所以必须要使被拷贝的路径处于和Dockerfile平级或更低的位置。