docker部署vue项目

12次阅读

共计 1499 个字符,预计需要花费 4 分钟才能阅读完成。

Vue 项目

我们先建立一个项目的文件目录,比如
然后在该目录下创建 vue 工程
vue 工程的创建我就不赘述了,网上教程一大把。这里提一下的是,我们需要的是 vue 项目 build 后的静态文件,将其放在 nginx 目录下。

vue 工程创建好后,cd 到工程目录,修改你的前端代码,这里我们只是为了尝试 docker 运行 vue 项目 build 的文件,所以就用默认的代码,npm run build 打包项目

nginx 配置

我们从 docker hub 上面进行 nginx 的拉取,通过 docker pull nginx 进行拉取,拉取完后,可通过命令 docker image ls 命令来查看本地已存在的镜像列表,会发现多了个 nginx 镜像

可以在项目 (vue-test/vue 工程目录) 的根目录新增一个 nginx.conf 文件,和 nginx 目录下配置文件一样,可以修改自定义配置
不用配置也可以,就会使用 nginx 默认配置,默认 80 端口、静态页目录 ngnix/html

Dockerfile

项目 (vue-test/vue 工程目录) 的根目录增加一个 Dockerfile 文件
mkdir Dockerfile
然后 vi Dockerfile 编辑内容如下:

FROM nginx  #指定基础镜像,即运行环境
COPY dist/ /usr/share/nginx/html/   #copy dist/ 到镜像内 /usr/share/nginx/html/ 下

然后在该目录下运行
docker build -t 自定义镜像名 .
构建一个新镜像,如果本地不存在指定的基础镜像,docker 会自动拉取,这里等待完成即可
完成后输入 docker images 会发现镜像列表多了一个刚刚自定义名字的镜像

最后 docker run --name 自定义容器名 -p8080:80 -d 自定义镜像名 运行一个容器,之后打开对应地址 8080 端口就可以访问这个项目了

docker 运行 springboot 项目

参考资料

然后我尝试着 docker 运行了一个 springboot,具体步骤大同小异,这里简述一下,首先我在本地机器(docker 部署在远程服务器上)创建了一个 springboot 项目,简单的写了一个接口,然后通过 maven 打成 jar 包,然后 xshell 上传到服务器,在该目录下创建 Dockerfile:

FROM java:8
VOLUME /tmp
ADD movie-0.0.1-SNAPSHOT.jar app.jar 
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

说明:

FROM:表示基础镜像,即运行环境

VOLUME:一个特别指定的目录,用于存储数据,该命令的作用是在 /var/lib/docker 创建一个名为 tmp 的目录,在开启 redis 服务时,需要特别指定 redis 的数据存储在哪个文件夹,此时这个命令就十分有用

ADD:拷贝文件并且重命名

EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立 image 的人员之间的交流,即建立 image 的人员告诉容器布署人员容器应该映射哪个端口给外界

ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入 java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加 java.security.egd 的系统属性指向 /dev/urandom 作为 ENTRYPOINT

然后执行上文提到的命令

docker build -t 自定义镜像名 .
docker run --name 自定义容器名 -p8081:8080 -d 自定义镜像名

之后访问 8081 端口,正确显示了接口返回

正文完
 0