MacでDockerが遅いとお嘆きの人たちへ
MacでDocker Desktopを使用して日々作業をする場合に どうしても、Mac上で直接操作するのよりもDockerで操作する時に遅くなってしまいます。 DockerからMacのファイルシステムにアクセスする時に特に遅くなってしまいます。 (今回の記事の対象者として「macでDockerを使ってコードを書いたりしている人」と仮定してます。) そこで、MacでDockerを早くする方法、 それはずばり、Docker Desktopを使わない。 という事になります。 え!?どーいうこと? とな ...
開発サイクルをブースト!するかもしれない。Dokku触ってみた(初期編)
開発環境って、一度作るとあとはそれほどいじらないのでいいんですが 適当に作ったけど適当に社内で公開したい場合にお気軽にデプロイしたい。 Capistrano使ったりするのもいいんだけど...。 それに、小さめのツール類が多いんだけど、毎回nginx立ててポート変えてとかconfでゴニョゴニョして公開するの、面倒。 サクッとデプロイしたら即公開みたいな環境ないかなー。herokuみたいな。 と思って探したらdokkuというのがあったので、触ってみました。 dokkuとは OSSのherokuライク ...
gendosu流、dockerの使い方
以前よりローカルでの仮想環境の生成・破棄は容易になったような気がしますが Vagrantでは、インスタンスの生成、破棄のコストが高い気がするので そこのところをDockerを使ってやってみるようにしてみました。 まずは、ベースになるマシンとしてUbuntu Server 14.10 64bitの仮想マシンを立ち上げます。 これは、VagrantでもVMwareでも問題ないです。 今後、頻繁にアクセスすることになるので、vmのIPをhostsに登録してしまいます。 hostsには 192.168. ...
git cloneした時に、Gtk-WARNING **: cannot open display:
git cloneしたときに (gnome-ssh-askpass:***): Gtk-WARNING **: cannot open display: という表示が出てエラーになる。 どうも、SSHの処理がパスワード入力ダイアログを出したいらしい。 これに関連する環境変数が SSH_ASKPASS という事で、これをunsetして見ます。 unset SSH_ASKPASS これで、無事git clone出来るかと思います。
Ubuntuで、現在インストールされているOSのバージョンを確認する
cat /etc/lsb-release
古いUbuntuを使っていて、apt-get updateなどが失敗する(404)
Ubuntuはサポートが切れたバージョンの場合 archive.ubuntu.com から old-releases.ubuntu.com というドメインにパッケージが移動するようです。 ということで、 /etc/apt/sources.list の中のドメイン名を変更してみます。 deb maverick main restricted universe deb maverick-updates main restricted universe deb maverick-security ma ...
今更ながら、screenコマンドを知った
ssh切れたら痛いなーと思っていたら screenというコマンドがあるというのを教えてもらった。 仮想ターミナルという感じのコマンドらしく teratermなどでサーバ機に接続した上でscreenを使うと screenがバックグラウンドで起動し、 さらにその中にターミナル接続したようなイメージで使用できるらしい。 ということで、クライアントPCとサーバとの接続が切れてもサーバ上ではターミナルが開かれたままという事になるみたい。 使い方は screenの起動 screen screenから抜ける( ...
Ubuntu で、IPアドレスを固定で指定する場合
IPアドレスを指定するファイルは /etc/network/interfaces DHCPで取得するような設定の場合 このファイルの中に auto eth0iface eth0 inet dhcp といったような記述があります。 ここのifaceの設定を以下の様に変更することで、IPを固定化出来ます。 iface eth1 inet static address 192.168.0.6 netmask 255.255.255.0 gateway 192.168.0.1
rvmを使った環境で、unicornをcrontabなどに登録する時の手順
rvmを使って実行環境を分けつつ、crontabなどで自動起動をさせたい時 まずはrvmでラッパーを作成する rvm wrapper 2.0.0@rails4.0 start unicorn_rails これを実行すると、~/.rvm/binにstart_unicorn_railsというファイルが出来上がる このファイルに対してunicorn_railsに指定するパラメータを指定してやると rvmを読み込んだ状態でunicorn_railsを実行してくれる。
UbuntuのDesktopをMac OS風にする
Ubuntuのデスクトップは標準では使いにくいので、どうせならMac OS風にして見よう、と思ってやってみます。 Mac OS風になる物はいくつかあるようですが 今回はGlx-Dock / Cairo-Dock という物を使ってみます。 インストールはパッケージ管理でちょこちょこっとコマンドを叩くと入れられるようです。 では、オフィシャルページにあるインストール方法を実行していきます。 ※ここでは、Ubuntu Serverではなく、通常のUbuntuで、Ubuntu-Desktopがインストー ...
Ubuntu 13 and Ruby on Rails 4 で、capybara-webkitを使ってcucumberでテスト
必要なパッケージをインストールする たぶん、このインストールだけで済むはず。 sudo apt-get install libqtwebkit-dev xvfb ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10 入れている物は、 libqtwebkit-dev qtwebkitの開発用モジュール Qtはデスクトップと組込み開発向けのクロスプラットフォームアプリケーション開発フレームワーク らしい xvfb 仮想フレームバッファ ttf-kochi-m ...
Jenkins on Ubuntuな環境で、テストのログが文字化ける
どうやら、ログをUTF-8として扱ってくれないのが原因のようなので /etc/default/jenkinsに設定を追加します。 Jenkinsがファイルを参照する時に効いてくる設定は file.encodingで、ここにUTF-8を設定してやればUTF-8としてファイルを読んでくれます。 ということで JAVA_ARGS="-Dfile.encoding=UTF-8" という設定を追加してみました。 あとは sudo service jenkins restart としてJenkinsを再起動 ...
Apacheのログで、特定の条件を除外した一覧を取得する方法
Apacheのログで、特定の条件を除外した一覧を取得する方法 awk '!/GET \/images/ && !/GET \/javascripts/ && !/GET \/stylesheets/{print($0)}' access.log
プロバイダにVPNの口をふさがれたっぽいので、SSL-VPNを導入する
タイトルの通りです。 最近外出先から家のネットワークに繋がらないなぁと思ったら プロバイダでふさがれたっぽいのです。。 ついでにいうと、DoCoMoのスマホでテザリングして接続ということが出来なかったので それも可能にしたい。 で、IPSecとかも考えましたが SSL-VPNという方式でつないだら楽かも?という事で SoftEther VPNというものを使ってみたいと思います。 このSoftEther VPNというのは、ソフトイーサ株式会社という所が作っている PacketiX VPNというソフ ...
Ubuntu Serverをインストール時に日本語で入れてしまった場合のコンソールの文字化け対策
サーバにSSHとかで接続する際には、ターミナルツールのエンコードをUTF-8とかで 日本語の表示が出来るので問題ないとして ほとんど無いと思いますが。 マシンに直接ログインした時に日本語が表示されません。 そのような時には、 ログイン後に export LANG=C と打ち込むことで、表示言語を標準言語に戻すことが出来るので 文字化けは起きないと思います。 まぁ英語になるので、めんどくさいかもしれませんが。
Ubuntuの日付を手動で設定する
sudo date -s "05/07 23:59 2013"
Ubuntuで、あるディレクトリ配下に作成されるファイルを定期的に削除する
定期的にファイルを削除したい場合、cronを使用する 例えば、/home/hoge/dataのlogディレクトリが作成されていたら削除するには crontab -e で、cronの設定ファイルを開き 0 1 * * * cd /home/hoge/data; if test -e log; then rmdir -pr log; fi; と設定する これで、一時間おきに/home/hoge/dataにあるlogディレクトリを削除してくれる
UbuntuにRhodeCodeを入れてGitリポジトリを公開する
RhodeCodeというのは、 Githubのような雰囲気のソース共有サーバを構築するオープンソースです。 Githubでやりたい事を、Githubではなく、ローカルで実現したい、といった場合に適していると思います。 リポジトリをフォークしたり、ソースレビューをしたりetc と言うことで、 RhodeCodeをインストールして見ます。 RhodeCodeはPython製なので、Pythonをインストールします。 sudo apt-get install python-dev python-set ...
svnのリポジトリを全部gitに移行する
svnのリポジトリをgitで扱う方法として svn gitというコマンドツールがある 今回はgitをリモートリポジトリにする方法は別途解説するとして このコマンドを使用して、svnリポジトリをgitに移行してみます。 まずは、gitリポジトリをイニシャライズします。 イニシャライズ時に、リモートリポジトリにする前提で移行するので--bareオプションを付けます。 これは、my_prodディレクトリにソースを展開せずに管理情報だけを保持するリポジトリにするオプションです。 git init --b ...
Ubuntu 12でgitoliteを使ってgitリポジトリを公開する
公開リポジトリを作成するまで gitのインストール sudo apt-get install git gitoliteのインストール sudo apt-get install gitolite gitolite用アカウントの作成 sudo adduser --disabled-password gitolite 管理者用として公開鍵を作成 ssh-keygen -t rsa gitoliteアカウントのホームに転送 sudo cp .ssh/id_rsa.pub /home/gitolite/a ...