springboot 工程打包docker镜像并指定profile

单点登录工程,后端的web服务,代码是用springboot写的,之前都是在测试环境用nohup java -jar直接运行的,现在要部署到docker服务器上

1.创建dockerfile文件

# Pull base image
FROM  java:8

MAINTAINER fengjian "ifengjian@qq.com"

VOLUME /tmp

# 添加
ADD sso-login-0.0.1-SNAPSHOT.jar app.jar
# Define default command.PROFILES 是可传递的变量
ENTRYPOINT ["sh","-c","java -jar app.jar --spring.profiles.active=$PROFILES "]
#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

2.构建可运行的jar包

这一步简答,用maven工具直接package就好

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
mvn package

3.制作镜像

将上边两步的jar包和dockfile文件上传到服务器上,如下

[root@localhost sso-login-web]# ls Dockerfile sso-login-0.0.1-SNAPSHOT.jar

然后创建镜像

[root@localhost sso-login-web]# docker build -t sso-login-web .
Sending build context to Docker daemon  36.41MB
Step 1/6 : FROM  java:8
 ---> d23bdf5b1b1b
Step 2/6 : MAINTAINER fengjian "ifengjian@qq.com"
 ---> Running in 397cb2ca9c89
Removing intermediate container 397cb2ca9c89
 ---> 280752bd5c66
Step 3/6 : VOLUME /tmp
 ---> Running in c914053e62a0
Removing intermediate container c914053e62a0
 ---> cfd8fa01e7b2
Step 4/6 : ADD sso-login-0.0.1-SNAPSHOT.jar app.jar
 ---> 1edf9ac2c40a
Step 5/6 : ENTRYPOINT ["sh","-c","java -jar app.jar --spring.profiles.active=$PROFILES "]
 ---> Running in 91acb800e1c5
Removing intermediate container 91acb800e1c5
 ---> f7907c327492
Step 6/6 : RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
 ---> Running in 0aabd7b8a404
Removing intermediate container 0aabd7b8a404
 ---> 723ea9430d9c
Successfully built 723ea9430d9c
Successfully tagged sso-login-web:latest

成功入上图所示,

[root@localhost sso-login-web]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
sso-login-web             latest              723ea9430d9c        10 seconds ago      680MB
hkzx-background-api-img   latest              0846af4b41db        4 weeks ago         724MB
hkzx-admin-api-img        latest              4cc14e855211        4 weeks ago         711MB
<none>                    <none>              b0e0107d563c        4 weeks ago         711MB
<none>                    <none>              03bf7b7138a0        4 weeks ago         711MB
mysql                     5.7                 a70d36bc331a        5 weeks ago         449MB
mysql                     latest              c8562eaf9d81        5 weeks ago         546MB
nginx                     latest              f6d0b4767a6c        6 weeks ago         133MB
nginx                     <none>              4bb46517cac3        6 months ago        133MB
redmine                   latest              c04c9119abaf        6 months ago        542MB
mysql                     <none>              718a6da099d8        6 months ago        448MB
portainer/portainer       latest              62771b0b9b09        7 months ago        79.1MB
hello-world               latest              bf756fb1ae65        14 months ago       13.3kB
tomcat                    8.0.53-jre8-slim    7645ae5b5797        2 years ago         223MB
java                      8                   d23bdf5b1b1b        4 years ago         643MB

4.运行并选择profile

[root@localhost sso-login-web]# docker run -d -p 8002:80 --name sso-login-web -e PROFILES="prod" sso-login-web:latest 

8002是宿主机端口
80是程序里server.port的配置,这里是80端口
以上就是用docker打包springboot项目过程

作者:四线码农
链接:https://www.jianshu.com/p/cb74020cad2d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值