dockerfile学习及脚本自动部署jar包

 效果图

1、先更新代码

2、再打jar包

3、打docker包

4、部署到docker容器

 

 

 

操作记录

创建一个目录

[TOC]

## dockerfile案例

### 构造一个springboot的jar包

### 创建一个目录,新增dockerfile

```bash
[root@ip-100 dockerfile]# pwd
/root/dockerfile
[root@ip-100 dockerfile]# ls
Dockerfile  springboot-docker.jar
[root@ip-100 dockerfile]# 
```

### Dockerfile内容

```bash 
# FROM命令定义构建镜像的基础镜像,必须是Dockerfile的首个命令
FROM java:8
 
# 用于指定持久化目录
VOLUME /temp
 
# 将本地文件添加到容器中
ADD springboot-docker.jar springboot-docker.jar
 
# 构建镜像时执行的命令
RUN bash -c 'touch /springboot-docker.jar'
 
# 配置容器,使其可执行化。配合CMD可省去"application",只使用参数
ENTRYPOINT ["java","-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx128m","-Xms128m","/springboot-docker.jar"]


FROM java:8
VOLUME /temp
ADD springboot-docker.jar springboot-docker.jar
RUN bash -c 'touch /springboot-docker.jar'
ENTRYPOINT ["java","-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx128m","-Xms128m","/springboot-docker.jar"]

```

### 打包命令docker build

```bash

1.生成镜像
# docker build -t springboot-docker .
# docker build -f ./Dockerfile -t springboot-docker  .
# docker build -f ./Dockerfile -t springboot-docker:0.1  .

[root@ip-100 dockerfile]# docker images
REPOSITORY          TAG       IMAGE ID       CREATED              SIZE
springboot-docker   0.1       54dcc83613d7   About a minute ago   682MB
springboot-docker   latest    54dcc83613d7   About a minute ago   682MB


# 注意:
#    1,命令是在 Dockerfile 所在目录执行;
#    2,一定不能忘了后面的. 此处的 springboot-docker 是实际生成的镜像名
--tag  -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
-f :指定要使用的Dockerfile路径
参考: https://www.runoob.com/docker/docker-build-command.html



2.运行镜像
-d     : 表示容器在后台运行
--name : 为容器起一个名字
-p     : 端口映射,格式为宿主机端口:容器端口,上文中含义是将容器中的端口80映射到宿主机的端口80,对外提供访问服务。
最后一个字段为镜像名称

# docker run --name springboot-docker01 -d -p 8080:8080 springboot-docker

[root@ip-100 dockerfile]# docker ps 
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                       NAMES
65bb62a54e55   springboot-docker   "java -Djava.securit…"   33 seconds ago   Up 31 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   springboot-docker01

宿主机浏览器: http://192.168.192.128:8080/getIpAndPort


3.查看启动日志
docker logs xxx
docker logs -f springboot-docker01

```


### 自定义命令脚本


```bash

# 打包命令
安装git
 yum install -y git

下载代码
 git clone https://gitee.com/pythonloser/springboot-docker.git

打包jar包
mvn clean install  

vim  restart.sh
chmod 777 restart.sh

# 更新代码及打包
cd /root/dockerfile/springboot-docker
git pull 

cd /root/dockerfile/springboot-docker
mvn clean install  
# 复制jar包
rm -rf /root/dockerfile/springboot-docker.jar
cp  /root/dockerfile/springboot-docker/target/springboot-docker.jar /root/dockerfile
 
# 删除容器再重新打包
echo 'stop'
docker stop springboot-docker

echo 'rm'
docker rm springboot-docker

echo 'build'
docker build -f ./Dockerfile -t springboot-docker  .

echo 'run'
docker run --name springboot-docker01 -d -p 80:8080 springboot-docker


```

### jdk安装

```bash 
一、yum安装jdk,/usr/lib/jvm
# yum -y list java*
# yum install -y java-1.8.0-openjdk-devel.x86_64
# java -version
 
 二、从官网下载包安装jdk
 进入oracle官网,java8下载页面http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.下载
# wget --no-check-certificate 官网获取的下载地址

2.解压
# tar zxvf jdk1.8.0_144.tar.gz
# mv jdk1.8.0_144 /usr/java/
 
4.配置环境变量
# vim /etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_144
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME

# source /etc/profile

5.验证安装
# java -version

```

### maven安装

```bash 
1.下载maven
# wget --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz

2.解压:
# tar -zxvf apache-maven-3.8.6-bin.tar.gz 
# mv apache-maven-3.8.6 /usr/local/

3.更换镜像 
# vim /usr/local/apache-maven-3.8.6/conf/setting.xml

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>

4.配置环境变量
# vim /etc/profile

MAVEN_HOME=/usr/local/apache-maven-3.8.6
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH

# source /etc/profile
# mvn -v

```

### 重启脚本解读 restart.sh

```bash 
[root@ip-100 dockerfile]# cat restart.sh 
systemctl stop firewalld
ntpdate time.windows.com
# git 更新
cd /root/dockerfile/springboot-docker
git pull 

# 删除原有target包
rm -rf /root/dockerfile/springboot-docker/target

# 打jar包
cd /root/dockerfile/springboot-docker
#mvn clean install  
mvn clean install -Dmaven.test.skip=true
# 删除原有包
rm -rf /root/dockerfile/springboot-docker.jar

# 复制新的jar包
cp  /root/dockerfile/springboot-docker/target/springboot-docker.jar /root/dockerfile

# 关闭容器
echo 'docker stop springboot-docker'
docker stop springboot-docker

# 删除容器
echo 'rm springboot  -docker'
docker rm springboot-docker

echo '路径' 
pwd

# 构建镜像包
echo 'build'
cd /root/dockerfile
docker build -f ./Dockerfile -t springboot-docker  .

# 运行容器
echo 'run'
docker run --name springboot-docker -d -p 80:8080 springboot-docker

```

### Dockerfile

```bash
 
FROM java:8
VOLUME /temp
ADD springboot-docker.jar springboot-docker.jar
RUN bash -c 'touch /springboot-docker.jar'
ENTRYPOINT ["java","-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx128m","-Xms128m","/springboot-docker.jar"]


```

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值