Dockerfile打包部署

news/2024/11/28 19:12:48/

Dockerfile打包

先找到打包完的目录下创建一个Dockerfile文件

touch Dockerfile

进去文件内编写

vim Dockerfile

# 基础镜像

FROM openjdk:8

# author

MAINTAINER yxh

# 挂载目录

VOLUME /home/project

# 创建目录

RUN mkdir -p /home/project

# 指定路径

WORKDIR /home/project

# 复制jar文件到路径

COPY medical-gateway.jar /home/project/medical-gateway.jar

# 启动认证服务

ENTRYPOINT ["java","-jar","/home/project/medical-gateway.jar"]

保存并退出

:wq!

构建镜像(my-task -> 取一个镜像名字,构建镜像后面是有一个'.'的)

docker build -t my-task .

启动镜像

docker run -d -p 18080:18080 --name task my-task

-d 容器在后台运行

-p 将宿主机的 8080 端口映射到容器的 8080 端口。

--name 取一个容器名

最后面的my-task指的是刚才打包的镜像名

jar部署

判断是否有openjdk有的话可以跳过

拉取openjdk镜像 如果拉不下来就切换镜像

docker pull openjdk

cd /usrmkdir projectcd project

将jar包拖入目录中

touch Dockerfilevim Dockerfile

# 基础镜像

FROM openjdk:8

# author

MAINTAINER yxh

# 挂载目录

VOLUME /home/project

# 创建目录

RUN mkdir -p /home/project

# 指定路径

WORKDIR /home/project

# 复制jar文件到路径

COPY medical-gateway.jar /home/project/medical-gateway.jar

# 启动认证服务

ENTRYPOINT ["java","-jar","/home/project/medical-gateway.jar"]

保存并退出

:wq!

构建镜像

docker build -t my-gateway .

启动镜像

docker run -d -p 18080:18080 --name gateway my-gateway

如果发现端口号被占用

netstat -anp |grep 18080//查看18080端口的占用情况

查看端口号占用进程

lsof -i :18080

关闭进程

kill -9 18080

再次启动镜像

docker run -d -p 18080:18080 --name gateway my-gateway

nginx打包部署

我那vue举例

先通过命令将前端工程打包

vue-cli-service build

打完包有个dist

现在去服务器上

cd /opt

创建nginx目录

mkdir nginxcd nginx

把dist拉到该目录下

先检查一下是否有nginx镜像

docker pull nginx

创建nginx配置

touch nginx.confvim nginx.conf
server {listen 80;server_name your_name;root /usr/share/nginx/html;index index.html;location / {try_files $uri $uri/ /index.html;}# 处理API请求location /prod-api/ {#存放jar网关部署的服务器IP和端口号proxy_pass http://IP:端口/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

保存并退出

:wq!

创建default.conf

touch default.conf
server {listen       80;server_name  124.70.138.156;#charset koi8-r;#access_log  /var/log/nginx/log/host.access.log  main;location / {root   /usr/share/nginx/html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}
}

保存并退出

:wq!

在该目录下创建Dockerfile

touch Dockerfilevim Dockerfile

# 使用nginx镜像

FROM nginx

# 作者

MAINTAINER yxh

# 删除nginx 默认配置

RUN rm /etc/nginx/conf.d/default.conf

# 添加我们自己的配置 default.conf 在下面

ADD default.conf /etc/nginx/conf.d/

# 把刚才生成dist文件夹下的文件copy到nginx下面去

COPY dist/ /usr/share/nginx/html/

保存并退出

:wq!

构建镜像

docker build -t my-vue-app .

启动镜像

docker run -d -p 80:80 --name vue-app my-vue-app

快去访问一下你的网站吧


http://www.ppmy.cn/news/1550697.html

相关文章

【Android】AnimationDrawable帧动画的实现

目录 引言 一、AnimationDrawable常用方法 1.1 导包 1.2 addFrame 1.3 setOneShot 1.4 start 1.5 stop 1.6 isRunning 二、 从xml文件获取并播放帧动画 2.1 创建XML文件 2.2 在布局文件中使用帧动画资源 三、在代码中生成并播放帧动画 3.1 addFrame加入帧动画列…

php用for循环比较数组对应值是否包含的方法,可错位比较

<?php $a1array("red","ed","blue","green"); $a2array("red","blue","b","bl ue"); // 使用for循环遍历数组 错位对比 for ($i 1; $i < 4; $i) { $s$i-1; echo $s.&qu…

软件测试丨Pytest生命周期与数据驱动

Pytest的生命周期概述 Pytest 是一个强大的测试框架&#xff0c;提供了丰富的特性来简化测试执行。它的生命周期包括多个阶段&#xff0c;涉及从准备测试、执行测试到报告结果的完整流程。因此&#xff0c;理解Pytest的生命周期将帮助我们更好地设计和管理测试用例。 开始阶段…

人工智能零基础入门学习笔记

学习视频&#xff1a;人工智能零基础入门教程 文章目录 1.简介2.应用3.演进4.机器学习5.深度学习6.强化学习7.图像识别8.自然语言9.Python10.Python开发环境11.机器学习算法1.多元线性回归项自实战&#xff1a;糖尿病回归预测 2.逻辑回归3.Softmax回归项目实战&#xff1a;鸢尾…

【docker集群应用】Docker网络与资源控制

文章目录 Docker 网络Docker 网络实现原理端口映射示例 查看容器的输出和日志信息Docker 的网络模式查看 Docker 网络列表Docker 容器网络命名空间示例创建并运行容器查看容器列表查看容器进程号查看容器的命名空间编号创建并运行共享网络命名空间的容器查看容器列表查看容器进…

洛谷 P1722 矩阵 II C语言 记忆化搜索

题目&#xff1a; https://www.luogu.com.cn/problem/P1722 我们按照案例画一下 我们会发现&#xff0c;会出现重复的子结构。 代码如下&#xff1a; #include<iostream> using namespace std; int mem[300][300]; int n; int f[305][305]; int dfs(int x,int red,…

20241124 Typecho 视频插入插件

博文免不了涉及到视频插入这些,网上的插件都或多或少的比较重,和Typecho的风格不搭配 后面就有了DPlay插件精简而来的VideoInsertion插件 VideoInsertion: Typecho 视频插入插件 目录结构 rockhinlink-ht2:/var/www/html/typecho/usr/plugins/VideoInsertion$ tree -h [4.…

详解Qt之QCache 高速缓存

文章目录 QCache 详解前言什么是 QCache&#xff1f;什么是 LRU 策略&#xff1f;QCache 的构造函数和常用成员函数构造函数1. 默认构造函数2. 指定容量的构造函数 常用成员函数1. insert2. object3. contains4. remove5. clear6. setMaxCost 完整示例代码总结 QCache 详解 前…