タグ

Goとdockerに関するdamehumanのブックマーク (6)

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

  • GoとDockerでLet's try gRPC - LiBz Tech Blog

    はじめに gRPCとは gRPCの特徴 gRPCが解決するマイクロサービスの課題 gRPCの課題 Let's try gRPC 1. 準備 2. protoファイルの作成 3. server側の処理 4. client側(リクエスト)の処理 5. buildして実行 最後に はじめに こんにちは!エンジニアの渡邊です。早いもので、11月でLiBに入社して丸1年がたちました。 このブログへの投稿も4回目になります。 前回の とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を番環境に導入した話 では、jetsの開発者であるtongueroo氏や、Rubyの生みの親まつもとゆきひろ氏をはじめ、多くの方にシェアをしていただき大変励みになりました!みなさんありがとうございました。 今回はGoogleが開発したRPCフレームワークgRPCについて書こうと思います。 g

    GoとDockerでLet's try gRPC - LiBz Tech Blog
  • 1つのDockerfileだけでGoの開発環境(ホットリロード)と本番環境(マルチステージビルド)を記述する - Qiita

    こんにちは。po3rinです。今回はDocker Meetup Tokyo #29 (Docker Bday #6)で少し話題になった小ネタです。タイトル通りDockerfile1つでGoの開発環境(ホットリロード)と番環境(マルチステージビルド)を記述する方法を紹介します。今回は「この方法をおすすめします!」というよりかは「こういう方法もあるよー」という紹介なので、開発の状況に合わせて方法を選んでいくと良いでしょう。 イントロ 開発環境用と番環境でイメージビルド過程を分けるモチベーションとしては、開発環境用はホットリロードしたいけど、番はビルドしたバイナリだけを使いたいという思いなどがあります。 これらを2つのDockerfileに分ける場合、同じディレクトリ階層に「Dockerfile」という名前のファイルを2つ置けません。これに関して、下記の記事のようにdocker build

    1つのDockerfileだけでGoの開発環境(ホットリロード)と本番環境(マルチステージビルド)を記述する - Qiita
  • Goの開発環境でDockerを利用する - Qiita

    Go3 Advent Calendar 2018の9日目を担当するtheoden9014です。よろしくお願いします。 Makefileについて書こうと思ったのですが、内容が同じような記事が先に出てしまったようなので、少し趣向を変えたタイトルにしました。 この記事では、MakefileとDockerfileを上手く利用することによって、Docker内でのビルドやデバッグを簡単にする方法についてご紹介します。 この手法であれば、開発者は手元にはDockerをインストールするだけでGoを使った開発を行えるようになります。 今回は以下のリポジトリをベースとしてご紹介していきます。 https://github.com/theoden9014/go-startkit/tree/qiita 背景 Goで開発する際には$GOPATHの知識は必要不可欠です。 vgoの普及によって$GOPATHの重要性は下

    Goの開発環境でDockerを利用する - Qiita
  • 「Vue.js + Go言語 + Docker」で作る!画像アップロード機能実装ハンズオン - Qiita

    こんにちはpo3rinです。Vue.js Advent Calender 2018 9日目の記事です。 8日目の記事は vue.js(nuxt.js) の plugin はとても便利 でした。 11月にフリーの案件で Vue.js + Go言語で画像アップロード機能のあるCMSを作りました。Vue.jsでの実装の際には npmモジュールである vue2-dropzone を使うと、Vue.js にとって便利な機能が提供されており、すぐにアップロード機能が作れました。なので今回は Vue.js + Go言語 で画像アップロードを行う機能の実装をハンズオン形式で紹介していきます。 今回は Vue.js のアドベントカレンダーとしての投稿なので、Go言語の実装を飛ばしたい方向けに、Go言語のインストールが不要になるように、すでにDocker環境を用意してあります。せっかくなので今回は Docke

    「Vue.js + Go言語 + Docker」で作る!画像アップロード機能実装ハンズオン - Qiita
  • CLI ツールを Go で書いて Docker イメージとしてリリースする

    最近ようやく開発ツールとして Docker が手に馴染んできたので、タイトルの件も含めていくつか雑多に書きます。 CLI ツールを Go で書いて Docker イメージとしてリリースする コマンドラインツールを Go で書く、というのは以前からやっていて、主な理由としては「クロスコンパイルができるのでバイナリリリースが簡単」というのがありました。便利なので、クロスコンパイルから GitHub へのリリースを一発でやってくれるラッパーツールを書いたこともありました (一応動くものの、開発は非常に中途半端なところで止まってますが) gox して ghr するツール ggallin 作った その後、2017 年に入って Docker で Multi-Stage Builds という機能が実装されてからは、Dockerfile 内の build ステージで go build したバイナリを最終的

    CLI ツールを Go で書いて Docker イメージとしてリリースする
  • 1