ローカルに作ったgitリポジトリをGithubに上げる

ローカルでgitリポジトリを作って何度かコミットし、それをGithubに上げた。
このときcontributionsがどうなるかわからなかったが、結局ちゃんとコミットの日が緑になった。

方法

  1. Githubに新しいリポジトリを作る
    普通に”New repository”で作成。
    このときREADMEや.gitignore、LICENSEも作れるが、既存のリポジトリと衝突するのが怖いので作らなかった。
  2. コマンドを打つ
    上でリポジトリ作ると、その次の画面で注意書きが出る。
    その中に既存リポジトリをpushする方法が書いてある。その通りやればいい。

    Quick_setup

    git remote add origin https://github.com/<USERNAME>/<REPOSITORY_NAME>.git
    git push -u origin master
    
  3. Githubを見て、うまくpushされたか確認する
    contributionsもちゃんと緑になっていた。実はこれが一番心配だったのでほっとした。
    “Created 1 repository”は今日の日付だが、過去のコミットもcontributionsとして扱われているようだ。

その他の方法

Githubの右上の「+」を押すと”Import repository”があり、ここから既存のリポジトリ(gitでもsvnでも)をインポートできるよう。
だがここではURLを指定しないといけない。今回はローカルのリポジトリだったのでできなかった。

Import repository

参考

radiko録音スクリプトのdocker化

radikoを録音するシェルスクリプトmatchy2/rec_radiko.shをdockerで動かすようにした。他の方のスクリプトを使うだけだが…。

できたもの

docker_rec_radiko

あとはCRONでdocker runすればいい(docker runはradiko_docker_run.shの中でやっている)。
録音時にdocker runするか、それともコンテナは起動しっぱなしにしてその中でCRONで録音するか迷った。(つまりCRONでコンテナを起動するか、コンテナの中でCRONするか。)だが録音しないときはこのコンテナは何もしないので、前者でいいということにした。

作った理由

環境構築が面倒だから。

関東を離れてもTBSラジオなどが聞きたいので、ConoHaで東京リージョンのVPSを借り、そこでこのシェルスクリプトを動かすようにした。スクリプトではffmpegなど必要となるツールがあるのでそれらをインストールしないといけない。VPSではいろいろなOSの中からCentOSを(サーバならCentOSだろという固定観念から)選んだが、CentOSだとこのインストール作業がやや面倒なのでdockerにした。

radikoのプレミアム会員になれば全国どこの局でも聞けるというのは知ってる。借りたサーバでは他にも何かするつもり。

もろもろ

  • 時刻設定が面倒だった
    はじめubuntu:16.04のdockerイメージを使っていたが環境変数 TZAsia/Tokyo にしてもJSTにならないようだった。他にも設定の方法はあるのだろうが、ubuntuはやめてdebianのイメージを使うことにした。debianだとこれでいける。
  • dockerでのマウント方法
    新しい指定方法ができていた(docker 17.06からなので新しくもない…知らなかっただけ)。
    ホストのディレクトリ[ファイル]をコンテナのディレクトリ[ファイル]にマウントさせたいとき、以下が同じ意味になる。

    # -v で指定する方法
    $ docker run -v <PATH_IN_HOST>:<PATH_IN_CONTAINER> <IMAGE_NAME>
    # --mount で指定する方法
    $ docker run --mount type=bind,source=<PATH_IN_HOST>,target=<PATH_IN_CONTAINER> <IMAGE_NAME>
    

    -v では、コロンの前と後どっちがホストのパスだっけと迷うことがよくあった。 --mount だといちいちsourceなどと書くのでわかりやすい。
    またvolumeのマウントでも、 -v だとホストディレクトリ[ファイル]のマウントと区別しにくかったが、 --mount ではtypeが変わるのでわかりやすい。

    # -v で指定する方法
    $ docker run -v <VOLUME_NAME>:<PATH_IN_CONTAINER> <IMAGE_NAME>
    # --mount で指定する方法
    $ docker run --mount type=volume,source=<VOLUME_NAME>,target=<PATH_IN_CONTAINER> <IMAGE_NAME>
    

参考