Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ※ 本記事は WESEEK Tips wiki の記事 "/Tips/BuildKitによりDockerとDocker Composeで外部キャッシュを使った効率的なビルドをする方法" の転載です。 本記事を執筆したモチベーション Docker Hub の Automated Build 機能を GitHub Actions へ移行する機会がありました。 移行をするだけであれば GitHub Actions で docker コンテナをビルドすればよいのですが、せっかくなので BuildKit を調べて使ってみることにしました。 本記事
2022/03/24追記 この記事内ではIntelチップでVirtioFSを使ったパフォーマンスが低い結果となっていますが、この問題はDocker for Macに起因するものではなくmacOS側にボトルネックがあり、 macOS 12.3で解決されたと報告されています。 https://github.com/docker/roadmap/issues/7#issuecomment-1028943179 背景 Docker for Macのファイルアクセスは遅く、本家のGitHubにもissueがあり長年議論が重ねられてきています。 https://github.com/docker/for-mac/issues/77 https://github.com/docker/roadmap/issues/7 これらの経緯は以前Qiitaにまとめたので興味があれば参照ください。 https://
【問題】 プライベートサブネットのインスタンスがECRからDockerイメージをプライベート接続でpullしたい。 インターネットゲートウェイ、NATゲートウェイを使用せずに外部接続無しで実現するにはどのようにするか。 【答え】 2019年1月のAWS Private linkのサポートによりこの問題は解決された。 その方法を投稿する。 #AWS Private Linkとは AWSサービスへのアクセスをプライベートに接続できる高可用性、高スケールラブルなNWサービス。 Private Link Endpointを設定するとVPC内でプライベートIP付きのENIが作成される。 AWS PrivateLinkサポートにより、パブリック or プライベート 関わらずインスタンスはECRからプライベートな接続でイメージをダウンロードすることができる。 もちろん、NATゲートウェイやインターネット
PR 2020年もWSL Advent Calendar作りました。 WSL2をインストールして使うときの注意点もよろしくお願いします。 tl;dr WSL2はHyper-Vのコア機能であるHyper-Vアーキテクチャと、それを利用したHyper-Vコンテナーの上に実現されている。それらはWindows 10 Homeでも利用可能なので、WSL2にProは不要。 MSのFAQから引用 WSL 2 は Hyper-v を使用しますか? Windows 10 Home で使用できるようになりますか。 WSL 2 は、WSL が現在利用可能なすべての Sku (Windows 10 Home を含む) で利用できます。 最新バージョンの WSL は、Hyper-v アーキテクチャを使用して仮想化を有効にします。 このアーキテクチャは、"仮想マシンプラットフォーム" のオプションコンポーネントで使
はじめに GitHub ActionsでDockerのコンテナをBuildするとデフォルトだとLayerのCache?がされないため、毎回Dockerfileの先頭から実行することになります(何も工夫をしないと)。 「LocalでBuildするときは(Cacheが効いて)速いんだけど、GitHub Actionsだと遅い」というのは、Buildに時間がかかる場合結構しんどいです(Twitterなどが捗ってしまう)。 色々方法があるようですが、Dockerのマルチステージビルドを使っていないなら、割と簡単にCacheを効かせられるようなので、そのメモです(主に自分用)。 ポイントは docker buildコマンドの --cache-from と --build-arg BUILDKIT_INLINE_CACHE=1 になります。また、このOptionを指定するには、BuildKitを有効に
Kubernetes使ってると、Nodeにえらい数のPodが溜まってくじゃないですか。消したくなりますよね。連鎖してほしいですよね。なりません?なので、4つ同じ色のPodが4個くっついたらdeleteされる、爽快感のあるカオスエンジニアリング用のcustom contollerを作りました。 deleteされるだけでは寂しいので、deleteされていく様子を見るためのkubectl pluginも作りました。合わせて使うとこんな感じになります。 左側の●のひとつひとつがPodです。Nodeが列に対応してます。6Node構成です。各色8個ずつpodを立てていて、右側にreplicasetの増減を置いてみました。 レポジトリはこちらです。 https://github.com/omakeno/kubectl-kbkb https://github.com/omakeno/kbkb-contro
2020/8/23 追記 2.3.5.0 の Edge release で削除されてしまった模様です。 今後の統合方法を検討するということで、続報を期待します。。 Docker for Mac の Edge channel で、 Mutagen ベースのキャッシュが使えるようになっています。(手元のバージョンは 2.3.1.0) 従来、 EC-CUBE をはじめとする Symfony をベースとしたアプリケーションや、Composer や npm などのパッケージ管理システムのファイルをマウントすると、強烈に遅くなる問題がありました。 今回利用できるようになった Mutagen ベースのキャッシュを利用するには、 Preferences -> Resources -> FILE SHAREING でマウントするディレクトリを指定 キャッシュを ON にするだけ。 です。 あとは通常通り、ア
Docker Hub から GitHub Packages へ Git tag やブランチをトリガーに Docker image を自動でビルドして Docker registry で公開・配布したいとなると、まず Docker Hub の利用が候補として考えられます。 あれだけの機能を無料で提供してくれている Docker Hub 開発チームには本当に感謝しているのですが、一点だけ不満があります。実行時間です。Docker Hub はビルドの開始が遅く、実行時間も結構かかりがちです。 これの解決策として外部サービスで Docker image をビルドして、そこから Registry に image を Push することが考えられます。外部サービスには色々な選択肢がありますが、今回は GitHub Actions を選びました。ビルド行程を GitHub Actions で行えば Do
はじめに メリークリスマス!! みなさんは Go のアプリケーション開発をどのような環境で行っていますか? 弊社ではゲームのアプリケーションサーバに Go を採用しており、開発は macOS で Docker for Mac を利用しています。開発当初はこの構成による不満は特に感じていませんでしたが、1年半ほど経ってプロジェクトの規模が大きくなったことで、無視できないレベルで開発スピードを低下させる要因となってしまいました。 弊社ではアプリケーション開発にソースコードの自動生成を多用しており、その影響もあってかコードベースの Go のコードは 150万行を超える規模になっています。 加えて、ビルドする際は cgo 経由で利用している C++ のコードもそれなりの量絡んでくることもあり、 Docker for Mac を使った Docker コンテナ上でのビルドに要する時間は、 メモリ8GB
The Twelve-Factor Appは、Heroku を想定して書かれたもので、コンテナをベースとしたオーケストレーターに適用するには、少々読み替えが必要となる。その様な適用法の記事がインターネット上あるので、参考資料に挙げておく。 参考資料 : immutable infrastructure, https://searchitoperations.techtarget.com/definition/immutable-infrastructure How do you build 12-factor apps using Kubernetes?, https://www.mirantis.com/blog/how-do-you-build-12-factor-apps-using-kubernetes/ Kubernetes & 12-factor apps, https://m
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Brendan Burns, David Oppenheimerらの論文「Design patterns for container-based distributed systems」を読んで、コンテナを活用したシステム設計や開発に、とても有用と感じたので、図を中心にした要約にしてみた。 要約内容に誤りや理解不足な部分もあると思うので、原文も参照していただきたい。また、自身の理解のために、論文中に無い図を加えた点、独自の注釈も加えている。 背景 コンテナ化されたソフトウェアコンポーネントから構築されたマイクロサービスアーキテクチャの人
はじめに Dockerを理解するには試してみるのが一番です。 でも、あなたはある日突然「あと一時間でDockerを理解する必要がある」 状況に追い込まれた不運なプログラマになってしまうかもしれません。 そんな状況で公式サイトのチュートリアルは長すぎることでしょう。英語ですし。 なので、Dockerでプログラムが最低知るべきことが最速でわかるチュートリアルを書いてみました。 簡単に「Dockerそれっておいしいの?」に答える Dockerは単に仮想環境を提供するアプリケーションです。LinuxのVMを提供します。ただ、コンテナ型ってやつなので軽量です。VMが短時間で構築できて便利です。コンテナ型ではないフルの仮想環境はゲストOSに中間マージンを払っているようなものなので、ゲストOSとホストOSが同じことやってるならリソースのムダです。ならば、ホストOSと直取引し、ゲストOSに支払っていた中間
概要 2019/05/22 CIのcron設定について注意事項を追記 コンテナの脆弱性スキャナを作ったので紹介します。ここでの脆弱性はWebサービスの脆弱性診断で見つかるようなタイプのものではなく、セキュリティアップデートが提供されるようなものを指しています。重ねて説明しますが脆弱性診断で見つけるような脆弱性ではなく、CVE-IDなどが付与される脆弱性です。 まず最初に、ツールは以下にあります。 https://github.com/knqyf263/trivy CIで簡単に使えるように1コマンドで実行可能なものにしました。ただイメージ名を指定するだけで利用可能です。 これだけです。イメージ名を指定すれば勝手にレジストリから取得するので手元にイメージがある必要はなく、それもDockerコマンドに依存せず実装してあるので実はDockerのインストールも不要です。 AWS/GCR等のプライベー
Retty Advent Calendar 2018 5日目の記事です。 昨日は @shindo-taichi さんの記事で、 Rettyマネタイズを支える広告商品開発 でした。 みなさんの会社では、CIをどれぐらい活用されていますでしょうか? "Fail Fast, Fail Often, Fail Forward" な開発体制を整えるためには CI/CDは欠かせない構成要素のひとつで、紆余曲折あって 今ではCircleCIを利用しています。 CircleCIはCI/CDのための優れたサービスとして、様々な素晴らしい側面を持っています。 本記事では、単なるビルド環境に閉じない利用事例を紹介したいと思います。 CricleCI とは CircleCIはCIのためのSaaSのひとつで ymlで簡単にワークフローを記述し、dockerを利用したジョブ実行により CI/CD環境を手軽に構築するこ
9月から入社したフューチャーアーキテクトのアドベントカレンダーのエントリーです。技術的にはウェブフロントエンドとGolangあたりです。 シングルページアプリケーションを数年前に試してみて、やりたい表現はこれで十分できるし、過去大変だったことも大分解消されましたのを感じました。一方でSEOとかOGPとかいくつかそのまま実現できないものがあります。とはいえ、それの解消のためにサーバーサイドレンダリングをするのは実装の手間が大変です。そこで、設計時に考えなきゃいけないことが増えます。ウェブアプリケーション側でその手の考慮&実装をいっさいせずに、今時のウェブアプリケーションでやった方がいいことを実現できる方法について考えました ・・・と思って準備しておいたのですが、@R548さんがDMM.comさんのアドベントカレンダーに書かれてしまった内容と一部かぶります。合わせてお読みいただくと、理解が深ま
趣味でディープラーニングで遊ぶために GPU マシンを使いたい。 GPU は本当にすごくて、自分の MacBook Air で 2 時間かかるような学習が GPU を使うと 5 分足らずで終わる。CPU だけでディープラーニングするのは馬鹿馬鹿しいという気持ちになる。 しかし自宅に GPU マシンを組んだとしても四六時中計算し続けるわけでもないからもったいないし、ここはクラウドサービスを活用して安く済ませたい。1 さらに、最近では Docker コンテナ内から GPU を利用することができる NVIDIA Docker という Docker プラグインがあり、これを利用することで GPU マシンの環境を汚すことなく好きなだけ学習環境を立ち上げることができる。 今回は Amazon EC2 の GPU インスタンスと NVIDIA Docker を使って趣味用のディープラーニング環境を作った
ギリシャからこんにちは!こんばんは! NTTコミュニケーションズアドベントカレンダー 6日目です。 私は今、神々の王ゼウスが生まれた伝説の島、クレタ島にいます。 というのも、こちらで開催されているACM CoNEXT 2018という国際学会に参加しているからです。 QUICに関する最新成果を発表する Evolution, Performance, and Interoperability of QUIC (EPIQ) ワークショップ も併催されました。 ポスター発表もしてきたので、今日はそれに関連して、kubernetes(k8s)を使ったQUIC負荷テスト の構成方法について、お話します。 この記事でわかること QUICについての基礎知識 kubernetesを使った負荷テストの構築手順(kubeadm + kubenet) QUICとは QUICは、TCP+TLSに代わるUDP上の新し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く