Springboot工程制作镜像并推送到阿里云

springboot工程

我们在这里找了一个原来的项目工程,项目结构如下:

Dockerfile文件编写

FROMjava:8
VOLUME/tmp
ADDjwordpress-web.jarweb.jar
ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/web.jar"]

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录  项目的 jar 文件作为 “app.jar” 添加到容器的  ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source

制作镜像并发布到阿里云私有仓库

方法一:本地利用docker命令

Maven install 

INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] jwordpress-parent .................................. SUCCESS [  0.215 s]
[INFO] jworpdress-web ..................................... SUCCESS [  2.308 s]
[INFO] jwordpress-admin ................................... SUCCESS [  0.035 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.852 s

然后到target 目录下看是否生成了jar文件

然后将jwordpress-web.jar和Dockerfile 放在同一个文件下。执行下面命令 `` docker build -t jwordpress:web-1.0.3.RELEASE .

liuhaihua@liuhaihuadeMacBook-Pro target % docker build -t jwordpress:web-1.0.3.RELEASE .
Sending build context to Docker daemon  51.81MB
Step 1/4 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/4 : VOLUME /tmp
 ---> Using cache
 ---> d27a75b4151c
Step 3/4 : ADD jwordpress-web.jar web.jar
 ---> 90b04ec165cc
Step 4/4 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/web.jar"]
 ---> Running in 4663a51a704e
Removing intermediate container 4663a51a704e
 ---> 312c514e7ecd
Successfully built 312c514e7ecd
Successfully tagged jwordpress:web-1.0.3.RELEASE

查看镜像

推送到阿里云镜像

$ sudo docker login --username=hi35928472@aliyun.com registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/shanbei/web:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/shanbei/web:[镜像版本号]

例子如下图:

登陆阿里云仓库看是否上传成功

方法二:利用maven插件

<plugins>
<!--docker支持插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.repository.url}/${docker.repository.namespace}/${project.artifactId}:${project.version}</imageName>
<serverId>${docker.repository.serverId}</serverId>
<registryUrl>${docker.repository.url}</registryUrl>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

Setting.xml增加仓库用户名和密码

<servers>
    <server>
        <id>docker-aliyun-my</id>
        <username>xxxx@xxx.com</username>
        <password>xxxx</password>
        <configuration>
            <email>xxx@xxxx.com</email>
        </configuration>
    </server>
</servers>

常量

<docker.repository.url>registry.cn-qingdao.aliyuncs.com</docker.repository.url>
<docker.repository.namespace>shanbei</docker.repository.namespace>
<docker.repository.serverId>aliyun-docker-hub</docker.repository.serverId>

运行docker build

然后在运行docker push

2种方式都可以,现实中,我们可能需要jenkins来打包部署,所以最好采用第二种方式比较靠谱。

目前100000+人已关注加入我们

       

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HBLOGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值