Dockerfile打包部署

devtools/2024/11/28 8:50:46/

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/devtools/137616.html

相关文章

如何利用蓝燕云零代码平台构建工程企业成本控制系统?

随着工程项目管理逐步走向数字化,企业对成本控制的精细化需求不断提升。利用蓝燕云零代码平台,可快速构建一套高效、智能的成本控制系统,实现从预算编制到分析决策的全流程管理。 一、核心功能模块 1. 预算与成本管理 预算编制:…

代码美学2:MATLAB制作渐变色

效果: %代码美学:MATLAB制作渐变色 % 创建一个10x10的矩阵来表示热力图的数据 data reshape(1:100, [10, 10]);% 创建热力图 figure; imagesc(data);% 设置颜色映射为“cool” colormap(cool);% 在热力图上添加边框 axis on; grid on;% 设置热力图的颜色…

华为云国内版与国际版的差异

华为云的国内版和国际版在很多方面有一些区别,主要体现在服务区域、定价、合规性、服务内容和支持语言等方面。以下是九河云对这些区别的详细分析: 1. 服务区域 国内版: 服务区域主要覆盖中国大陆地区,包括北京、上海、广州、深…

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装

鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装 鸢尾花植物的结构认识和Python中scikit-learn工具包的安装一、鸢尾花的认识1.1 对花结构和功能认识1.2、鸢尾花认识1.2.1 鸢尾花种类1.2.2 鸢尾花结构 二. Py…

DFT工程师面试常考的知识点

DFT(Design for Testability,可测试性设计)工程师面试通常涵盖广泛的知识点和技能,这些知识点和技能对于理解和实施DFT策略至关重要。以下是一些DFT工程师面试中常考的知识点及相关内容的归纳: 一、DFT基础知识 DFT定…

Java开发中对List<Map<String, Object>>集合去重并按大小拆分子列表

Java开发中对List< Map< String, Object > >集合去重并按大小拆分子列表 一、使用场景二、实现步骤三、相关知识四、代码示例 一、使用场景 在处理大量List<Map<String, Object>>集合的数据时&#xff0c;为确保数据的唯一性&#xff0c;需要先根据Ma…

JavaEE 【知识改变命运】03 多线程(2)

文章目录 复习1.1 进程和线程的区别1.2 线程创建的方式1.3 两者创建的区别 2 多线程2.1多线程的优势-增加了运行的速度2.2Thread类及常用的方法2.2.1常用见的构造方法2.2.2获取当前类的信息2.2.3Thread 的⼏个常⻅属性1 演示后台线程2 线程是否存活3 名称4 线程中断5 等待⼀个线…

STM32的一些知识技巧

STM32的一些知识技巧 STM32命名规则 查看代码编译所占用的flash和SRAM的大小 单位为字节&#xff08;Byte&#xff09; 1、使用keil编译结果进行计算 2、查看.map文件 STM32启动模式 主闪存启动地址为0x08000000 查看程序段/函数执行时间 global.prop文件 保存字体配置&…