二、聊聊 Docker 的基础命令
1. 镜像常见相关命令
2. 容器常见相关命令
这里要特别说一下 docker run
的 option
,因为最常用:
- —name 为容器指定一个名称;
- -d 容器启动后进入后台,并返回容器 ID,即启动守护式容器;
- -P 随机端口映射;
- -p 80:8080 将本地 80 端口映射到容器的 8080 端口;
- -i 以交互模式运行容器,通常与 -t 同时使用;
- -t 为容器重新分配一个伪输入终端,容器的 Shell 会映射到当前的 Shell,然后在本机窗口输入的命令,就会传入容器,通常与 -i 同时使用;
- —rm 在容器终止运行后自动删除容器文件;
- —restart=always 设置容器自启动;
- -v /xxx:/yyy 映射命令,把本机的 xxx 目录映射到容器中的 yyy 目录,也就是说改变本机的 xxx 目录下的内容, 容器 yyy 目录中的内容也会改变;
由于 hub.docker.io
目前只支持一个 私有镜像,所以我们暂不考虑使用;推荐大家使用 github
自带的 镜像源 ghcr.io
三、编写 Dockerfile
由于 umi
构建之后产物会放在 dist
目录下面,所以我们可以编写如下的 Dockerfile;
Dockerfile 用于声明镜像执行的步骤; 对于如下命令不熟悉的同学可以点击查看此文章
四、编写 github action
前置准备工作
- 去 github.com/settings/to… 生成一个 token,注意此 token 需要读写 packages 等权限 详情请见这里
- 准备好你的要部署的服务器的 账号 和密码(当前页可以使用秘钥登录,这里暂且使用密码)
- 想好你的镜像名称(此处以 web-image 为例)
在.github/workflows
目录创建一个 publish-image.yml
扩展阅读