From a2de1c2df6be1d7d2bcb645a6fc802c123ae51e6 Mon Sep 17 00:00:00 2001 From: Boom <654612@qq.com> Date: Mon, 25 Sep 2023 11:24:36 +0800 Subject: [PATCH] =?UTF-8?q?:+1:=20=E5=A2=9E=E5=8A=A0docker=E5=B8=AE?= =?UTF-8?q?=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zsw/drive.md | 65 ++++++++++++++++++++++++++++ docs/zsw/img/rainbond-container.png | Bin 0 -> 24069 bytes 2 files changed, 65 insertions(+) create mode 100644 docs/zsw/img/rainbond-container.png diff --git a/docs/zsw/drive.md b/docs/zsw/drive.md index 659504a..a2cec59 100644 --- a/docs/zsw/drive.md +++ b/docs/zsw/drive.md @@ -53,3 +53,68 @@ drive.yixinhuixiang.com + +## 打包一个镜像到rainbond + + +### 文件准备 + +准备好需要打包的html包,确认下一层级就有html文件 + +写好dockerfile 这是制作镜像的描述 + +例子: + +``` +FROM nginx +# dist 文件结构是 ./dist/index.html +COPY ./dist /usr/share/nginx/html +COPY ./default.conf /etc/nginx/conf.d/ +EXPOSE 80/tcp + +``` + +如果必要修改nginx配置,比如做本地反向代理,或者是调整上下载限制,就写一份nginx的配置文件 ,跟着镜像一起打包 + +反向代理设置选项请参考nginx配置帮助 [nginx帮助](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) + +反向代理可以让访问应用特定地址,转发到目标,从而避开跨域,或者复杂环境等情况。 + +``` + # 这个配置将导致访问应用/app/后缀的直接转发到www.baidu.com + location /app/ { + proxy_pass http://www.baidu.com; + } +``` +### 镜像操作 +准备好后,在dockerfile 目录执行 +``` +docker build . -t $name +``` + +$name = 镜像名称(私有仓库请写全部 比如:) +``` +docker build . -t registry.cn-beijing.aliyuncs.com/zsw2023/mini_game +``` + +由于docker hub太慢,我们外部仓库放置镜像加速拉取,用阿里云或者青云。 + +阿里云的操作举例: + +``` +# 把本地镜像改名成能推的 不带版本号默认最新:latest +docker tag nginx:v2 registry.cn-beijing.aliyuncs.com/zsw2023/nginx +# 登录阿里云 +docker login registry.cn-beijing.aliyuncs.com +# 推 +docker push registry.cn-beijing.aliyuncs.com/zsw2023/mini +``` + +### 应用发布 +由于我们服务器应用demo设置了registry.cn-beijing.aliyuncs.com/zsw2023/mini作为拉取构建镜像, + +推送完成后服务器直接点构建,就可以更新。 + + ![docker](img/rainbond-container.png) + + diff --git a/docs/zsw/img/rainbond-container.png b/docs/zsw/img/rainbond-container.png new file mode 100644 index 0000000000000000000000000000000000000000..a9cf76800299a02a61bab793b9d0b580bb77a6d5 GIT binary patch literal 24069 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 E--TZ{sQ>@~ literal 0 HcmV?d00001