项目地址:https://gitee.com/lwydyby/springcloud-adplatform
demo预览地址:http://dota2info.cn/index
1.首先引入docker plugin:(注:这里使用的阿里的镜像中心)
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.12</version>
<configuration>
<!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->
<!-- 详见:https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed-->
<imageName>registry.cn-qingdao.aliyuncs.com/wwmxd/generator</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<serverId>docker-hub</serverId>
</configuration>
</plugin>
为了可以使用工具自动push到网上,需要修改maven的setting.xml(内容根据自己的进行补充):
<servers>
<server>
<id>docker-hub</id>
<username></username>
<password></password>
<configuration>
<email></email>
</configuration>
</server>
</servers>
2.配置config-server的dockerfile:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gameley-config.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
3.之后使用idea的pluging工具打包:
4.之后配置generator的dockerfile,基本方式一样,但有一部分区别,如下:
(1)由于使用的本地的jar包,在pom.xml中需要做如下配置,使maven打包时包含本地的jar包:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<extdirs>gameley-generator\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
(2)generator需要在config完全运行起来后,再启动,所以需要使用脚本:
脚本地址:https://github.com/Eficode/wait-for (需要将该文件拷贝到项目的docker目录下)
(3)dockerfile配置如下:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gameley-generator-1.0.0-SNAPSHOT.jar app.jar
ADD wait-for-it.sh /wait-for-it.sh
RUN sh -c 'touch /app.jar'
RUN sh -c 'chmod 777 /wait-for-it.sh'
5.配置docker-compose
version: '2'
services:
mysql:
image: registry.cn-qingdao.aliyuncs.com/wwmxd/mysql:1.0
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=sp_admin
- MYSQL_ROOT_PASSWORD=123456
config:
image: registry.cn-qingdao.aliyuncs.com/wwmxd/config:1.0
ports:
- 8888:8888
generator:
image: registry.cn-qingdao.aliyuncs.com/wwmxd/generator:latest
links:
- config
- mysql
ports:
- 7777:7777
depends_on:
- config
- mysql
command: sh -c './wait-for-it.sh config:8888 -t 30 -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar'