CircleCI 1.0でDockerやdocker-composeを使用する際の制限と気をつけること

こんにちは。
かれこれ1年くらい仕事でCircleCI + Dockerを使ってみているのですが、 とにかくツラい
CircleCI + Docker構成でCIしたい方はだいぶマゾいとすら思います。
他のCI系のサービスどうなんだろうと調べつつも、これまで戦ってきたノウハウは備忘録として残そうと思います。

なにがツラいかというと、

という構成だと、色々なDockerに関する操作が動きません。
ローカルでは動くので、基本ドはまりする要素満載です。
更にdocker-composeでブラックボックスに包むと、余計にわけがわからなくなります。

ということでハマったことと、CircleCIでDockerを扱うための基本戦術を残します。

Continue Reading…

AWS Athenaでテーブルを作る時にAccess Deniedと怒られたら試すこと

こんにちは
はじめてAWS Athenaを使用してみました

試しにS3に置いてあるCSVをもとにテーブルを作ろうとしたらAccess Deniedのエラーが発生
権限は足りており、疎通確認もできているので、権限系の問題ではない。ではなぜ?

調べてみたらしょーもないところでドハマリしていたので、備忘録を残しておきます

Continue Reading…

Dockerのビルド時にGithubのプライベートリポジトリをcloneする

表題についてざっと調べると、

などの情報が出てくるのですが、そんな大げさな話じゃなく単にcloneがしたいだけなんです。
調べても意外と出てこなかったのでdocker buildの待ち時間に記事として残しておきます。
なお、記事のタイトルは非正確で、厳密にはプライベートリポジトリをnpm installする話です。

Continue Reading…

リモートのタグを一括削除するときは–deleteを使おうと思った話

この記事は12/19のGit Advent Calendarの記事です。

ひょんなことから、リモートのGitサーバにある4000個のタグを一括削除することになりました。

タグ消すときはgit push origin :タグ名でタグを消してたのですが、 4000個もあると丸一日待っても終わらないので、他に素早く消せる方法はないだろうか、 とコマンドを探していたら良いものを見つけた、という備忘録です。

※タグについて書きますがブランチにおいても同様です。

Continue Reading…

Selenium IDEで作ったテストをCLI環境で動かしてみる

この記事は12/21 クローラー/Webスクレイピングの記事です。

最近、自社システムのシナリオテストの実施方法周りの調査をやっているのですが、

  • GUIからテストコードの原型を作成できる
  • テストコードを編集してもGUIで編集できる可逆性が有る
  • CIのためにヘッドレスで実行できる
  • 環境構築が簡単

な手法を調べており、selenese-runnerというツールとSeleniumが提供しているSelenium Hubというツールを利用したらいいんじゃないか、という結論になりました。
この方法なら専門的な技能がなるべく少なくて済むんじゃないか。

と思っている方法を紹介します。

Continue Reading…

docker composeでMySQLのデータ領域をローカルにマウントする

この記事は12/1のDocker2 Advent Calendar, 12/3のHamee Advent Calendarの記事です。

こんにちは。
docker composeめちゃくちゃ便利ですよね。
Chef, Vagrant, Puppet, Ansible, Fabric…とプロビジョニングツールとか仮想化ツールを色々触ってきましたが、
それらよりずば抜けて扱いやすいと思っているツールです。

で、ローカルで開発している時に困るのが、 MySQLをはじめDBにデータを持ってもコンテナを破棄するとデータがすっ飛ぶ 問題です。
軽量なアプリの場合ならDB破棄してシード流して、、、という構成でもイケるかも知れませんが、多くの場合オーバーヘッドが大きすぎてまともに開発できなくなると思います。

Docker for Macを使用している場合はこの問題は難なく解消できるのですが、
docker-machineを使用している場合に恐らくドハマリするので、備忘録として残しておきます。

Continue Reading…

Drupal7で指定したユーザが管理者ロールか否かを判断したいときはvariable_getを使いましょう

WEB EGGではじめてのDrupalネタです。
Drupalを触っててふと気になったのが、 指定したユーザが管理者ロールか否か を判定しようとしたものの、
調べてもベストプラクティスが見つからず、ソースコードを追ったらやっと正解を見つけたという話の備忘録です。

Continue Reading…

Railsでconfig/database.ymlを使わずURL文字列でDB接続したい

れこです。今回はRailsネタです。
作ったアプリをHerokuにデプロイするときに、各種アドオンで

のような文字列を環境変数で指定して使うというパターンが有ると思うのですが、
config/database.ymlに一切触らず に、この文字列でDB接続したい…

と思ったのでRailsのソースやドキュメントを読み漁ってみました。

Continue Reading…