开发环境maven-docker
项目采用springCloud
maven插件采用 `io.fabric8`
maven配置
<properties>
<docker.plugin.version>0.32.0</docker.plugin.version>
<docker.host>http://172.31.96.253:2375</docker.host>
<docker.registry>172.31.96.253:5000</docker.registry>
<docker.namespace>NAME</docker.namespace>
<docker.username>root</docker.username>
<docker.password>admin@8888</docker.password>
</properties>
<build>
<finalName>${project.name}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<configuration>
<!-- Docker Remote Api-->
<dockerHost>${docker.host}</dockerHost>
<!-- Docker 镜像私服-->
<registry>${docker.registry}</registry>
<!-- 认证信息-->
<authConfig>
<push>
<username>${docker.username}</username>
<password>${docker.password}</password>
</push>
</authConfig>
<images>
<image>
<!-- 镜像名称: 172.17.0.111/library/ccp-gateway:2.6.3-->
<name>${docker.registry}/${docker.namespace}/${project.name}:${project.version}</name>
<build>
<dockerFile>${project.basedir}/Dockerfile</dockerFile>
</build>
</image>
</images>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
mvn docker:build 构建镜像
mvn docker:push 推送镜像
基于linux搭建docker仓库
前置要求Linux服务器中安装docker
1.下载镜像
docker pull registry:2.7.1
docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.1
2.编辑 /etc/docekr/daedom.json
加入 "insecure-registries":["你的ip地址:5000"]
3.开启2375端口(供编译环境生成镜像)
vi /usr/lib/systemd/system/docker.service中在 ExecStart 后加入 -H tcp://0.0.0.0:2375
重启 systemctl daemon-reload systemctl restart docker
打开防火墙端口 iptables -I INPUT -p tcp --dport 2375 -j ACCEPT
访问地址
http://你的ip地址:5000/v2/_catalog
研发环境k8s部署yaml例子
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: venus-system
name: venus-system
spec:
replicas: 1
selector:
matchLabels:
app: venus-system
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: venus-system
spec:
containers:
- image: venus-system:1.0
name: venus-system
env:
- name: NACOS_HOST
value: nacos
- name: NACOS_PORT
value: '8848'
- name: MYSQL_HOST
value: mysql
- name: MYSQL_PORT
value: '3306'
- name: REDIS_HOST
value: redis
- name: REDIS_PORT
value: '6379'
resources: {}
volumeMounts:
- mountPath: /edr
name: data
volumes:
- name: data
hostPath:
path: /edr
status: {}
---
apiVersion: v1
kind: Service
metadata:
name: venus-system-out
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
selector:
app: venus-system