一、环境准备

1、CentOSLinux环境准备,略。
2、Docker环境安装,配置国内加速源,略。
3、Docker安装nacos环境

《Linux 系统安装 nacos》

二、vue-admin打包

1、vue项目打包
1.1、修改接口请求地址

![image.png](

docker把vuedist包打成镜像时报错 docker vue 打包_vue.js

1.2、执行打包

在终端执行下面命令得到 dist 目录
npm run build

docker把vuedist包打成镜像时报错 docker vue 打包_nginx_02

1.4、新建文件夹/opt/module/admin-master

并在该文件夹中新建两个文件

Dockerfile

docker把vuedist包打成镜像时报错 docker vue 打包_nginx_03

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-admin
docker 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打包其它非公共依赖模块

docker把vuedist包打成镜像时报错 docker vue 打包_jar_04

将这些模块打包后,传入服务器上

docker把vuedist包打成镜像时报错 docker vue 打包_jar_05

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

其他模块对应修改名称和端口即可

下面是项目配置好的文件目录,

docker把vuedist包打成镜像时报错 docker vue 打包_nginx_06

注意

多次上传 dist 文件,重复的部分会被覆盖,但打包时,会自动以当前打包时间为文件名,所以多次上传时,需要手动将旧的文件给删除。只留下时间最新的文件。

docker把vuedist包打成镜像时报错 docker vue 打包_nginx_07

因为在虚拟机内,可能虚拟机的系统时间会导致某些镜像文件下载失败,因为一些镜像文件是从网上下载下来的,可能因为你的时间不对,导致下载时会返回错误的信息。