2017年12月29日金曜日

mac環境でコマンドラインからdocker toolboxをインストールします

1、まず、Howebrewをインストール
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、次はCaskをインストールします。
brew install caskroom/cask/brew-cask

3、最後docker-toolboxをインストールします。
brew cask install docker-toolbox

2017年11月10日金曜日

cygwin環境で、ruby及びgemをインストール

1.Rubyのインストール
apt-cygコマンドを使ってインストールします。
apt-cyg install ruby
# しばらくまつ
 
 
# バージョン確認
$ ruby --version
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-cygwin]
2.Gemをインストール
 ① まず、オフィシャルサイトでダウンロードリンクを取得
オフィシャルサイトリンク:https://rubygems.org/pages/download
 ② ダウンロードし、インスールします 
wget https://rubygems.org/rubygems/rubygems-2.7.2.tgz
tar -zxvf rubygems-2.7.2
$ ruby setup.rb
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory @ dir_initialize - /home/hoge/.gem/ruby/2.3.0/gems
 ③ エラー解消
ご覧のように、エラーになりました。
ディレクトリーがないようです。
ディレクトリーを作成します。
mkdir -p /home/hoge/.gem/ruby/2.3.0/gems
 
 
# 再度インストール
$ ruby setup.rb
Bundler 1.16.0 installed
RubyGems 2.7.2 installed
Regenerating binstubs
今度無事にインストールできました。

docker コンテナにログイン時に、「executable file not found in $PATH」エラーの対応

以下のコマンドでdockerにログインしようと思ったら、「executable file not found in $PATH」のエラーになりました。
docker exec -it dev_phpmyadmin_1 bash
oci runtime error: exec failed: container_linux.go:295: starting container process caused "exec: \"bash\": executable file not found in $PATH"
調査したところ、busyboxのLinux種類らしくて、bash shellが使えません。
busyboxでも、「/bin/sh」を使えるはずです。

「bash」を「/bin/sh」に変えたら、ログインできました。コマンドは次の通りです。
docker exec -it dev_phpmyadmin_1 /bin/sh
/ #

2017年10月29日日曜日

オンデマンドインスタンスとリザーブドインスタンスの違い

オンデマンドインスタンスと比べて、リザーブドインスタンスは主に以下2つのメリットがあります。
  • コスト - オンデマンドインスタンスの料金と比べて大幅な割引をうけられます(最大75%)。
  • 保証される - 利用可能なリージョンで、いつでも利用可能な状態を保てることを保証されています。
上記の2つのメリット、それぞれを見ていきましょう。
保証される
名前の通り、リージョンさえ利用可能であれば、インスタンスは可能である状態を保証されている意味です。
通常時に特にメリットを感じないかもしれませんが、主に災害時に、もし隣のリージョンは何かの理由でダウンになってしまったら、同然こっちのリージョンの需要が高まってきます。オンデマンドなら、混雑時になかなか立ち上がれない可能性がありますが、もしリザーブドなら、稼働しつづけることを保証されているので混雑時でも利用可能です。
ディズニーリゾートの混雑時利用可能な「スポンサーパスポート」と似てますね。
コスト
コストの詳細、アマゾンのオフィシャルサイトの次のリンクでご確認できます。→AWS EC2リザーブドインスタンスの料金詳細
リザーブドインスタンスの料金プラン、以下の図で示した通りに主に以下の3種類があります。

① スタンダード 1 年間 
契約期間は1年間のプランになります。
② スタンダード 3 年間 
契約期間は3年間のプランになります。
③ コンバーチブル 3 年間 
スタンダートプラントと比べて割引率が多少劣ろうが、契約後アベイラビリティーゾーン、インスタンスサイズ、およびネットワークタイプの変更が可能です。

また、支払いタイプも以下の三つが用意されています。
① 全額前払
名前の通り、契約時に全額支払う必要です。
② 一部前払い 
契約時に一部料金を支払って、残りの残金は契約期間内で毎月ゆっくり払っていくプランです。
③ 前払いなし 
名前の通り、前いはいっさい不要で、契約期間終了までの間、毎月支払うプランです。

2017年10月24日火曜日

Composer updateで「PHP Fatal error: Allowed memory size of xxxx bytes exhausted」の対処法

方法は以下の2つがあります。
  1. もしcomposer.lockも一緒にコミットされていたら、vendorを”まるごと”再度「composer install」で解消できます。具体的な操作手順は以下の通りです。

    # vendorをバックアップをとっておくと安心
    mv vendor vendor_bk
    composer install
    composer info 或いは composer show でインストール済みの全パッケージの情報を確認

    ※ ここ一つ大きな制限事項があります。他の誰か既にcomposer update済み、かつcomposer.lockが最新の状態であることが前提としています。
  2. 一時的にメモリのサイズを指定してアップデータを実行します。具体的な操作手順は次の通りです。

    # まずcomposerコマンドのパスを表示
    which composer
    # 以下のような結果が出ると思います。
    /usr/local/bin/composer
    # メモリサイズを設定してアップデータを実行
    php -d memory_limit=-1 /usr/local/bin/composer --no-dev update バッケージ名