一、环境准备
1、CentOSLinux环境准备,略。
2、Docker环境安装,配置国内加速源,略。
3、Docker安装nacos环境
《Linux 系统安装 nacos》
二、vue-admin打包
1、vue项目打包
1.1、修改接口请求地址
![image.png](
1.2、执行打包
在终端执行下面命令得到 dist 目录npm run build
1.4、新建文件夹/opt/module/admin-master
并在该文件夹中新建两个文件
Dockerfile
nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
client_max_body_size 20m;
server {
listen 80;
server_name www.fngdes.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#如有需要的话,添加映射静态资源文件
location /static{
root /usr/share/nginx/html/202202141414/;
}
}
}
1.7、创建镜像
前端镜像名 —— nginx-es-admindocker images
展示所有镜像
[root@dockerdevp es-admin]# docker build -t nginx-es-admin .
注意:在末尾有一个
**.**
1.8、运行容器
前名docker容器名 后是镜像名生成的名字
[root@dockerdevp es-admin]#docker run --restart=always --name nginx-es-admin-app -p80:80 nginx-es-admin
如果有上传文件目录之类的,需要添加映射目录,如:
docker run --restart=always --name nginx-vp3d-index-app -p80:80 -v /Users/esncode/upLoad:/Users/esncode/upLoad nginx-vp3d-index
使用 docker ps
展示所有启动的容器docker ps -a
展示所有容器,包括未启动的
[root@dockerdevp es-admin]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5014a2d5e2e8 nginx-es-admin "/docker-entrypoin..." 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp
SpringCloud 项目打包
1、mvn打包项目
在pom.xml中记得加上exec配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
公共依赖模块不用打包,应该作为依赖配置到其他模块
https://www.jianshu.com/p/37c6688c4fcb
maven中首先clean、install父工程项目,再clean、install 其它模块common,最后依次package打包其它非公共依赖模块
将这些模块打包后,传入服务器上
3、每个模块下对应增加一个Dockerfile
以gateway为例
修改名称和端口即可
Dockerfile
FROM java:8
COPY *.jar /gateway-0.0.1-SNAPSHOT.jar
CMD ["--server.port=88"]
EXPOSE 88
ENTRYPOINT ["java","-jar","/gateway-0.0.1-SNAPSHOT.jar"]
4、生成镜像
在响应目录下执行命令
docker build -t es-gateway .
5、运行容器
在对应的文件中执行命令,否则可能会找不到 Dockerfile 文件
docker run -d -p88:88 --name es-gateway-app es-gateway --restart=always
如果有映射文件目录添加 -e 进行制定
docker run -d -p88:88 --name xxx-app -e /opt/moudule/xxx:/usr/local/share/xxx xxx-image --restart=always
其他模块对应修改名称和端口即可
下面是项目配置好的文件目录,
注意
多次上传 dist 文件,重复的部分会被覆盖,但打包时,会自动以当前打包时间为文件名,所以多次上传时,需要手动将旧的文件给删除。只留下时间最新的文件。
因为在虚拟机内,可能虚拟机的系统时间会导致某些镜像文件下载失败,因为一些镜像文件是从网上下载下来的,可能因为你的时间不对,导致下载时会返回错误的信息。