heroku上部署spring boot 应用

前期准备

本地登陆Heroku heroku login

输入用户名密码

1
2
3
4
5
$ heroku login
Enter your Heroku credentials.
Email: java@example.com
Password: (typing will be hidden)
Authentication successful.

创建spring boot项目

省略

将代码提交到本地仓库

1
2
3
$ git init
$ git add .
$ git commit -m "first commit"

创建一个Heroku应用xxx

1
$ heroku create xxx

推送到heroku 远程git仓库

1
$ git push heroku master

日志查看及bash访问

1
$ heroku logs --tail
1
$ heroku run bash

设置编码和时区

1
2
$ heroku config:add LANG=en_US.UTF-8
$ heroku config:add TZ="Asia/Shanghai"

数据库连接设置

  • 添加postgresql

    1
    $ heroku addons:create heroku-postgresql
  • heroku免费的postgres有限制,10000条记录,但是对于一般测试小功能使用也足够了

  • 添加变量,数据库配置的key不要改成其他,注意jdbc连接的格式: jdbc:postgresql://<host>:<port>/<dbname>?user=<username>&password=<password>
  • 对应配置文件

    1
    2
    3
    4
    5
    6
    7
    spring:
    datasource:
    name: PostgreSQL
    driver-class-name: org.postgresql.Driver
    url: ${JDBC_DATABASE_URL}
    username: ${JDBC_DATABASE_USERNAME}
    password: ${JDBC_DATABASE_PASSWORD}
  • 创建数据源

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Bean
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() throws URISyntaxException{
    DruidDataSource datasource = new DruidDataSource();
    datasource.setName(datasourceName);
    datasource.setUrl(url);
    datasource.setUsername(username);
    datasource.setPassword(password);
    datasource.setDriverClassName(driver);
    return datasource;
    }
  • 使用navicat可以对postgres进行远程管理

注意事项

  1. 30分钟无人访问就休眠(解决办法: https://uptimerobot.com 定时访问你的应用)
  2. 绑定了信用卡之后每个月有1000小时(所有应用加和),普通用户只有550小时(所有应用加和),而一个月有720小时,所以…而且无法自定义域名(解决办法:绑定visa或是mastercard)
  3. 如果要通过程序在heroku上保存文件,需要放到/app下面,重启后,目录重置
  4. 中文文件名乱码,需要改变编码格式
  5. 内存512M,如果超出200%会停止应用···

 Valine评论

文明评论,请勿灌水。为了便于区分,请您在留言时至少填写一下 昵称 啊。
留言时填写邮箱可以在被回复时收到邮件提醒,也可以显示Gravatar头像,网址填写个人主页或者博客的作用是别人点击你的昵称会跳转到你的博客,为你增加访问量。