メモ: heroku

# herokuコマンドインストール

```bash:
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
```

----

# php

```bash:
git clone https://github.com/heroku/php-getting-started.git
cd php-getting-started
heroku create tukiyo3aa3
git push heroku master
```

* http://tukiyo3aa3.herokuapp.com/ で表示確認

```html:web/views/index.twig
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
こんにちは
</body>
</html>
```

```bash:
git commit -am "make it better"
git push heroku master
```

* http://tukiyo3aa3.herokuapp.com/ で表示確認

----

## postgres

```bash:
sudo apt-get install -y postgresql-client
sudo apt-get install -y postgresql-server
heroku addons:create heroku-postgresql
```

* [Heroku の PostgreSQL データベースへアクセスしてレコードを更新する : Serendip - Webデザイン・プログラミング](http://www.serendip.ws/archives/6267)

```bash:herokuのpostgresに接続
heroku pg:psql
```

* `\i filename.sql`でインポートできる。
    * [herokuのpostgreSQLのDBにローカル環境からSQLを実行する。 - Qiita](http://qiita.com/satton_maroyaka/items/2631db410764784e305c)

----

# herokuにdockerをrelease

雛形は以下

* [clojure](https://github.com/heroku/clojure-getting-started.git) [go](https://github.com/heroku/go-getting-started.git) [gradle](https://github.com/heroku/gradle-getting-started.git) [java](https://github.com/heroku/java-getting-started.git) [jruby](https://github.com/heroku/jruby-getting-started.git) [node](https://github.com/heroku/node-getting-started.git) [php](https://github.com/heroku/php-getting-started.git) [play](https://github.com/heroku/play-getting-started.git) [python](https://github.com/heroku/python-getting-started.git) [ruby](https://github.com/heroku/ruby-getting-started.git) [scala](https://github.com/heroku/scala-getting-started.git)

## nodejs

* [DockerでHerokuに近い環境を再現しつつDockerのImageをslugにして公開するまでのメモ - Qiita](http://qiita.com/koki_cheese/items/b88125a5313a3c3eef4c)

```bash:
git clone https://github.com/heroku/node-js-getting-started.git
cd node-js-getting-started
```

```bash:
heroku docker:init
heroku plugins:install heroku-docker
```

```bash:
heroku create tukiyo3aa1
heroku docker:release
```

### トップページの編集

```html:views/pages/index.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
こんにちは
</body>
</html>
```

```bash:release
heroku docker:release
```

* http://tukiyo3aa1.herokuapp.com/ にアクセスし確認

## 自分のapps一覧、削除

```bash:一覧
$ heroku apps
=== My Apps
secret-inlet-2158
tukiyo3aa1
tukiyo3aa2
tukiyo3aa3
```

```bash:削除
$ heroku apps:destroy --app secret-inlet-2158

 !    WARNING: Potentially Destructive Action
 !    This command will destroy secret-inlet-2158 (including all add-ons).
 !    To proceed, type "secret-inlet-2158" or re-run this command with --confirm secret-inlet-2158

> secret-inlet-2158
Destroying secret-inlet-2158 (including all add-ons)... done
```

## ERROR: client and server don't have same version (client : 1.19, server: 1.18)

* ubuntu16.04にて遭遇

```bash:
$ docker-compose up web

ERROR: client and server don't have same version (client : 1.19, server: 1.18)
```

* [docker - 「client and server don't have same version (client : 1.19, server: 1.18) 」って怒られたら - Qiita](http://qiita.com/sparkgene/items/7905b1bf6801f92d29a8)

```bash:解決策
$ export COMPOSE_API_VERSION=1.18
$ docker-compose up web
```

## クレジットカード登録が必要

```bash:
heroku addons:create memcachedcloud:30
```

>  !    Please verify your account to install this add-on plan (please enter a credit card) For more information, see https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify

----

## herokuにssh接続

* [Heroku/Posgresqlでよく使うコマンド一覧 - 酒と泪とRubyとRailsと](http://morizyun.github.io/blog/heroku-postgresql-useful-commands/)

```bash:herokuにssh接続
heroku run bash
```

* ec2上で動作
* ubuntu 14.04, kernel 3.13.0-71-generic
* cpu : E5-2670 v2 @ 2.50GHz x 8コア
* memory : 64GB
* PATH: `/app/.heroku/php/bin:/app/.heroku/php/sbin:/usr/local/bin:/usr/bin:/bin`