springcloud脚手架搭建(三)---搭建generator的docker镜像

项目地址: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'







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值