打包镜像并推送至自己的远程镜像厂库(阿里云、harbor)等等都可以,然后安装 k8s 从镜像仓库拉去镜像并运行部署
nacos
nacos
3.8.2
3.3.5
2023.0.3
2023.0.1.3
UTF-8
17
17
3.3.5
1.3.3
0.0.3
2.2.4
1.12.675
2.4
3.1
1.10
3.0.5
4.0.5
3.0.5
3.0.0
2.4.0
1.0.0
0.45.1
http://127.0.0.1:2375
mentalimages
admin
123
9.0.1
0.0.43
1.6.0
3.13.0
${project.name}
src/main/resources
true
org.springframework.boot
spring-boot-maven-plugin
${spring-boot.version}
${project.build.finalName}
true
repackage
io.fabric8
docker-maven-plugin
${docker.plugin.version}
build-image
package
build
push
${docker.host}
${docker.registry}
${docker.username}
${docker.password}
${docker.registry}/${docker.namespace}/${project.name}:${images.version}
${project.basedir}/Dockerfile
org.codehaus.mojo
flatten-maven-plugin
${flatten-maven-plugin.version}
resolveCiFriendliesOnly
true
flatten
process-resources
flatten
flatten.clean
clean
clean
org.apache.maven.plugins
maven-compiler-plugin
${maven-compiler-plugin.version}
${maven.compiler.target}
${maven.compiler.source}
UTF-8
true
io.github.git-commit-id
git-commit-id-maven-plugin
${git.commit.plugin}
get-the-git-infos
initialize
false
true
yyyy-MM-dd HH:mm:ss
^git.build.(time|version)$
^git.commit.(id|message|time).*$
io.spring.javaformat
spring-javaformat-maven-plugin
${spring.checkstyle.plugin}
validate
true
dev
dev
true
test
test
mental-register
mental-gateway
mental-auth
mental-upms
mental-common
mental-visual
prod
prod
mental-register
mental-gateway
mental-auth
mental-upms
mental-common
mental-visual
放入对应模块下
FROM openjdk:17
WORKDIR /mental-auth
ARG JAR_FILE=target/mental-auth.jar
COPY ${JAR_FILE} app.jar
EXPOSE 3000
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
CMD sleep 60; java $JAVA_OPTS -jar app.jar
这里使用kubersphere 的 在 Linux 上以 All-in-One 模式安装 KubeSphere 方式:
在 Linux 上以 All-in-One 模式安装 KubeSphere了解在 Linux 上如何使用最小安装包安装 KubeSphere。本教程为您理解容器平台提供了基础入门知识,为学习以下指南奠定基础。https://kubesphere.io/zh/docs/v3.4/quick-start/all-in-one-on-linux/
在每个模块 编写 DockerFile
FROM openjdk:17
WORKDIR /mental-gateway
ARG JAR_FILE=target/mental-gateway.jar
COPY ${JAR_FILE} app.jar
EXPOSE 9999
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Dfile.encoding=utf-8"
CMD sleep 60; java $JAVA_OPTS -jar app.jar
在项目根路径编写docker-compose.yml
version: '3'
services:
mental-mysql:
build:
context: ./db
environment:
MYSQL_ROOT_HOST: "%"
MYSQL_ROOT_PASSWORD: XXXXXX #数据库密码
restart: always
container_name: mental-mysql
image: mental-mysql
ports:
- 3306:3306
volumes:
- /var/mysql/data:/var/lib/mysql
networks:
- mental_network_default
mental-redis:
image: registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis
ports:
- 6379:6379
restart: always
container_name: mental-redis
hostname: mental-redis
networks:
- mental_network_default
mental-register:
build:
context: mental-register
restart: always
ports:
- 8848:8848
- 9848:9848
container_name: mental-register
hostname: mental-register
image: mental-register
networks:
- mental_network_default
mental-gateway:
build:
context: mental-gateway
restart: always
ports:
- 9999:9999
container_name: mental-gateway
hostname: mental-gateway
image: mental-gateway
networks:
- mental_network_default
mental-auth:
build:
context: mental-auth
restart: always
container_name: mental-auth
hostname: mental-auth
image: mental-auth
networks:
- mental_network_default
mental-upms:
build:
context: mental-upms/mental-upms-biz
restart: always
container_name: mental-upms
hostname: mental-upms
image: mental-upms
networks:
- mental_network_default
mental-screen:
build:
context: mental-screen/mental-screen-biz
restart: always
container_name: mental-screen
hostname: mental-screen
image: mental-screen
networks:
- mental_network_default
mental-monitor:
build:
context: mental-visual/mental-monitor
restart: always
ports:
- 5001:5001
container_name: mental-monitor
hostname: mental-monitor
image: mental-monitor
networks:
- mental_network_default
# mental-codegen:
# build:
# context: ./mental-visual/mental-codegen
# restart: always
# container_name: mental-codegen
# hostname: mental-codegen
# image: mental-codegen
# networks:
# - mental_network_default
# mental-quartz:
# build:
# context: ./mental-visual/mental-quartz
# restart: always
# image: mental-quartz
# container_name: mental-quartz
# networks:
# - mental_network_default
networks: #配置自定义桥接网络,可以通过容器名实现容器之间的通信
mental_network_default:
name: mental_network_default
driver: bridge
将项目打成压缩包传到服务器上,解压,在项目更目录执行
# 构建镜像
docker compose build
# 启动容器 (-d 后台启动,建议第一次不要加,方便看错误)
docker compose up -d