二 部署到Railway

二. 部署到 Heroku Railway

课程中部署到Heroku的步骤:

  1. 容器化我们的app(hello_crow)
  2. heroku 登录
  3. 创建一个heroku的app
  4. 推送这个容器,并发布它
  5. 在浏览器里测试

heroku收费,弃。在试验了heroku的替代品:fly.io, render, railway后,
fly.io: 在launch阶段提示添加信用卡,弃;
render: 可以直接部署Image,操作最简单,但部署页面一直是in process,弃;
railway: 使用railway CLI部署,部署成功。
以下是部署到railway的流程:

1. 容器化app

 在部署之前,需把卷永久保存到docker image里,因为卷不是docker image的一部分。
下面把正在运行的app版本放入image里。
在主机目录cppweb下中,运行cppbox:latest image。

docker run -ti cppbox:latest bash

列出所有正在运行的容器:

docker ps

显示:
在这里插入图片描述

如果列出所有在运行和不在运行的容器,用命令:

docker ps -a

正在运行的容器id: c7b1adf797a8(含卷)
 复制所需要的CONTAINER ID (一定不要含卷的容器,因为它的内容无法commit到新的image里)ec814bc48bc5,复制到容器,输入以下命令,把主机当前目录(cppweb)下的内容复制到<容器id(不能是带卷的容器)>下的/usr/src/cppweb

docker cp . ec814bc48bc5:/usr/src/cppweb

接下来,把容器的内容带到新的image(hello_crow:latest):

docker commit ec814bc48bc5 hello_crow:latest

显示:

sha256:385043f8207f1cb9035220360e16e6f468daa6790ddc11a35ef3859b8a60f2a8

返回vscode,在hello_crow目录下,新建Dockerfile如下:

FROM hello_crow
WORKDIR /usr/src/cppweb/hello_crow/build
CMD ["./hello_crow"]

由于当FROM hello_crow,部署时显示错误:

ERROR: failed to solve: bbox:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

使用build目录作为开始目录,当image被启动时,在这个目录下,启动hello_crow app。
因此,把hello_crow推送到docker hub自己的仓库中,修改为From auly/hello_crow,可解。

2. 保存容器到Docker Hub

 我们可以用自己的image,也可用他人的image,因此有docker hub。
docker hub:基于云的注册服务,用于存储和查找docker image,免费注册,可以存储任意多的公有image和1个私有image。
保存容器到Docker Hub的步骤:
(1) 登录
在hello_crow目录下,登录docker hub。

docker login

(2) 标记
列出所有image:

docker images

在这里插入图片描述

标记image:

docker tag  <最新的image id> auly/hello_crow:latest

(3) 推送

docker push auly/hello_crow

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-usymNisO-1685891427233)(images/docker_push.jpg)]

(4) 浏览器登录hub.docker.com查看
在这里插入图片描述

image的url:docker.io/auly/hello_crow

3. 部署到railway

注册一个railway账号/用谷歌账号登录。
使用railway CLI部署。
(1) 下载railway ClI
在wsl下,安装命令:

bash <(curl -fsSL cli.new)

需等待一会儿才显示进度条。
验证安装成功:

railway version

(2) 登录
登录railyway:

railway login

打开浏览器页面确认登录(有时需断开vpn才能登录成功)。
(3)创建新project
创建一个新的project:

railway init

可自己取名字也可直接Enter随机取。
在这里插入图片描述

(4) 链接
把project和当前的目录连接起来:

railway link

(5)部署
在部署前在浏览器railway bashboard界面,找到service,点setting,在最下面一个选项,把\health删除,不让它健康检查。
部署:

railway up

在bashboard - service界面显示部署成功。
(3) 浏览器查看
在bashboard - service界面 setting复制链接,在浏览器打开,显示页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值