Category:

GitLab CI + kaniko でDockerイメージをビルド

業務ではGITリポジトリとしてGitLabを使ってるのですが、ローカルPCでDockerイメージを作成する運用だと ローカルの変更が混じってしまう可能性がある イメージを作成するタイミングがあいまいだし、作成忘れがあったりする などの問題があり微妙だったので、GitLabにタグ(1.5.2など)をプッシュしたタイミングで、自動的にDockerイメージを作成してGCRにビルドさせることにしました。 少し前に 会社のブログ で kaniko を使うケースを紹介してくれていたので、やってみることにしました。 GitLabでDockerイメージをビルドする方法の候補 改めてGitLabの ドキュメント を見てみると、以下のように書いてあります。 There are three methods to enable the use of docker build and docker run duri Continue Reading

Posted On :
Category:

AirflowでDockerOperatorを動かす

Airflowは、ワークフローをプログラムで作成、スケジュール、および監視するためのプラットフォームです。仕事でAirflowを採用することにしたので、今回はAirflowをローカルPC上で動かして、DockerOperatorで任意のDockerコンテナを実行しつつ、必要な要素(DAG実行時のパラメータ指定とか環境変数渡しなど)を試していきたいと思います。 Airflowについて 公式のトップページから引っ張ってきただけですが、以下のような原則・特徴があるそうです。 原則 スケーラブル Airflowはモジュール化されたアーキテクチャを備えていて、Messageキューを使用して任意の数のワーカーを調整でき、無限に拡張できる 動的 AirflowのパイプラインはPythonで定義されており、動的にパイプラインを生成することができる 拡張可能 独自の演算子を簡単に定義し、ライブラリを拡張して Continue Reading

Posted On :
Category:

DockerのTips

Dockerに関するTipsを気がついたら追記していく予定。 ちなみにDocker Composeに特化したTipsは こちら を参照のこと DockerコンテナのIPアドレスを確認 まずは、対象のネットワーク名を取得する。 docker network ls NETWORK ID NAME DRIVER SCOPE 1e1234536b95 sample_default bridge local 次に、ネットワークおよびそのネットワークに所属するコンテナの詳細情報を取得する。 この実行結果だと172.19.0.2が対象コンテナのIPアドレスとなる。 docker network inspect sample_default [ { "Name": "sample_default", "Id": "xxxxxx&quot Continue Reading

Posted On :
Category:

Docker Compose上のNginxをHTTPS対応する

ローカル開発用にDocker Comnposeで動かしているNginxをHTTPS対応する必要が出てきたので、自作のSSL証明書を使って対応することにした。 opensslで秘密鍵、署名リクエスト、SSL証明書を作成 sslというフォルダを作成する mkdir ssl cd ssl 秘密鍵(KEY)を作成する 暗号にはRSA 2048ビットを使用する。 openssl genrsa 2048 > server.key 署名リクエスト(CSR)を生成する SSLサーバ証明書発行に必要なテキストデータで、認証局はこのテキストデータを元に内容を精査してSSL証明書を発行するらしい。(今回は自作するので適当でOK) openssl req -new -key server.key > server.csr > Country Name (2 letter code) []:81 > S Continue Reading

Posted On :
Category:

Docker ComposeのTips

Docker Composeは複数のDockerコンテナをまとめて立ち上げることができる便利なツールである。 いくつかのケースについて実例をあげながら設定方法を記載していこうと思う。 別docker-composeのコンテナを参照する 1つ目のdocker-composeでDBを、2つ目のdocker-composeでWebアプリを立ち上げて、WebアプリからDBを参照するケースを考える。 基本的には、networkで同一ネットワークに所属するように設定し、external_linksで外部コンテナにアクセスできるように設定すればよい。 DB用docker-compose.ymlの設定 version: '3' services: postgres: image: postgres:latest container_name: "database" Continue Reading

Posted On :