如何在Heroku上部署使用Docker创建的网站


环境

Docker 19.03.8
macOS 10.15.5

前提

Heroku帐户注册完成
自制程序安装完成,您可以使用brew命令

部署之前的说明

以下是我这次部署的网站的docker-compose.yml文件。

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '3'

services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data

    environment:
      POSTGRES_PASSWORD: 'postgres'

  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

安装heroku命令

终端

1
$ brew tap heroku/brew && brew install heroku

登录到heroku-cli

执行以下命令后,单击Enter。

终端

1
2
$ heroku login
heroku: Press any key to open up the browser to login or q to exit:

以下屏幕将自动打开,因此请输入您的登录信息。
スクリーンショット 2020-06-06 18.10.53.png

登录到Container Registry

然后执行以下命令以登录到Container Registry。

终端

1
2
$ heroku container:login
Login Succeeded

创建新的应用

执行以下命令来创建新的应用程序。使用$ heroku create [app name]为您的应用创建名称。请输入您指定的应用名称。

终端

1
2
3
$ heroku create recipegram-app
Creating ? recipegram-app... done
https://recipegram-app.herokuapp.com/ | https://git.heroku.com/recipegram-app.git

将Docker映像推送到Container Registry。

将本地创建的docker映像推送到Heroku的Container Registry。

终端

1
$ heroku container:push web

为Heroku附加组件创建postgresql

终端

1
$ heroku addons:create heroku-postgresql:hobby-dev

Web进程类型已发布

终端

1
$ heroku container:release web

运行数据库迁移

终端

1
$ heroku run rails db:migrate

资产:precompile

终端

1
$ heroku run rails assets:precompile

部署完成

以下命令将打开已部署的应用程序,因此请对其进行检查。

终端

1
$ heroku open

我能够毫无问题地显示它!我能够确认网址显示正确^ _ ^
スクリーンショット 2020-06-06 22.41.33.png

在Heroku上解除绑定后如何更新

下面的链接显示了部署到Heroku后的更新过程,请看一看!

[Docker]如何在Heroku上使用容器进行更新以及如何处理迁移错误