タイトルのとおりです。
簡単なOpenShiftの始め方です。
応用的なことは何も書いていません。
アプリの開発のスタートの仕方
きくたろーさんが書いてくれています。
クローン
作成したアプリケーションはgitでローカルに持ってこれます。
アプリケーションを作成した後の画面の赤で囲んだ部分がgitのリモートリポジトリーです。
ここにあるアドレスをコピーして
$ git clone ssh:hogehoghoe
すると、maven形式のプロジェクトがcloneされます。
開発
僕がつくった環境はWildFly8.2Finalの環境なので、普通にJava EE 7のアプリケーションをつくります。
嬉しい事に、デフォルトのJavaの設定が8になっていたりします。
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
(もしかしたら設定でそうしていたのかも)
後は
- アプリをシコシコ作る
- 変更をgit add → git commitする
- git push origin master
これだけで、勝手にOpenShift側でコンパイルして、ステージングしてくれます。
こんな感じ。
$ git push Counting objects: 19, done. Delta compression using up to 4 threads. Compressing objects: 100% (14/14), done. Writing objects: 100% (19/19), 2.19 KiB | 0 bytes/s, done. Total 19 (delta 7), reused 0 (delta 0) remote: Stopping wildfly cart remote: Sending SIGTERM to wildfly:243482 ... remote: Building git ref 'master', commit d97f4de remote: Found pom.xml... attempting to build with 'mvn -e clean package -Popenshift -DskipTests' remote: Apache Maven 3.0.4 (r1232336; 2012-12-18 14:36:37-0500) remote: Maven home: /usr/share/java/apache-maven-3.0.4 remote: Java version: 1.8.0_31, vendor: Oracle Corporation remote: Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.i386/jre remote: Default locale: en_US, platform encoding: ANSI_X3.4-1968 remote: OS name: "linux", version: "2.6.32-504.3.3.el6.x86_64", arch: "i386", family: "unix" remote: [INFO] Scanning for projects... remote: [INFO] remote: [INFO] ------------------------------------------------------------------------ remote: [INFO] Building your-app-name 1.0 remote: [INFO] ------------------------------------------------------------------------ ...省略 remote: Found 127.2.62.1:8080 listening port remote: Found 127.2.62.1:9990 listening port remote: CLIENT_MESSAGE: Could not connect to WildFly management interface, skipping deployment verification remote: ------------------------- remote: Git Post-Receive Result: success remote: Activation status: success remote: Deployment completed with status: success To ssh://1234567890abcdef1234567890abcdef@your-app-name-your-domain.rhcloud.com/~/git/your-app-name.git/ 684f7c8..d97f4de master -> master $
Free枠について
一応、Freeプランの内容を読むと
- 3個のアプリ(3 gears)まで無料
- 1GBのストレージ(アプリ自体の容量が含まれるかわからん)
- 24時間はインスタンスを起動しててくれる(24時間アクセスがないと勝手に落ちる)
となっています。が、僕のアプリ(単なるスケジュールドタスクだけのクソアプリ)は6〜7時間に一回はタスクが動くのですが、たまに落ちてくれています。誰か解決方法知ってたら教えて下さい。
作ったアプリ
で、作ったクソアプリですが、
というアプリで、17時10分(最終バスの20分前)に
とメンションをくれたり、毎朝6:45に
と起こしてくれたり、昼くらいに
飯食えプレッシャーかけてきたり、
23時に寝ろと言ってきたりします。
ひめちゃん、かわいいやつです。
おわり。
なお、中級、上級者向けの記事を書く予定はありません。
あと、手前味噌で恐縮ですが、twitter4jアプリを作るときの注意点は下の記事をご覧ください。
【2015/04/15 23:31 追記】
あ、これ書こうと思ってて忘れてた。
openshiftにブラウザーでなく、ターミナルから繋げられるrhcというツールが有ります。
- インストール要件
- ruby 2.0以上
儂のruby見てみたら、1.9.3だったので、rubyのなるべく新しいの入れるところからやった
$ rbenv versions * system (set by /Users/mike/.rbenv/version) 1.9.3-p392 $ cd ~/.rbenv/ $ git pull origin master remote: Counting objects: 413, done. remote: Compressing objects: 100% (37/37), done. remote: Total 413 (delta 79), reused 68 (delta 68), pack-reused 308 Receiving objects: 100% (413/413), 107.68 KiB | 0 bytes/s, done. ... 省略 $ cd ~/.rbenv/plugins/ruby-build $ git pull origin master remote: Counting objects: 2549, done. remote: Compressing objects: 100% (117/117), done. ... 省略 $ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28 Installing ruby-2.2.1... Installed ruby-2.2.1 to /Users/mike/.rbenv/versions/2.2.1 $ rbenv global 2.2.1 $ rbenv versions system 1.9.3-p392 * 2.2.1 (set by /Users/mike/.rbenv/version) $ sudo gem install rhc Password: Fetching: open4-1.3.4.gem (100%) Successfully installed open4-1.3.4 Fetching: httpclient-2.6.0.1.gem (100%) Successfully installed httpclient-2.6.0.1 ... 省略 Fetching: rhc-1.35.1.gem (100%) =========================================================================== If this is your first time installing the RHC tools, please run 'rhc setup' =========================================================================== Successfully installed rhc-1.35.1 Parsing documentation for open4-1.3.4 Installing ri documentation for open4-1.3.4 ... 省略 Done installing documentation for open4, httpclient, highline, commander, archive-tar-minitar, net-ssh, net-ssh-gateway, net-ssh-multi, net-scp, rhc after 10 seconds 10 gems installed $
rhcコマンドを使えるようにしておくと、ログを見ることができたり、sshでログインできたりします。
【追記 その2】
WildFlyにはslf4jの実装が入っているらしく、slf4jをloggerとして使えるようです。
pom.xmlに下記の依存を設定します。
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> <scope>provided</scope> </dependency>
src/main/webapp/WEB-INFの下にjboss-deployment-structure.xmlというファイルを準備して、次のように記述します。
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <!-- add your project dependencies here --> <module name="org.slf4j" /> </dependencies> </deployment> </jboss-deployment-structure>
これで、後は普通にprivate static final Logger LOGGER = LoggerFactory.getLogger(Hoge.class);
とロガーを取得して、ログをinfo
レベル以上で出力すれば、rhc tail -a your-app-name
で見ることができます。