Denoを使うと、TypeScriptをコンパイルせずに実行できます。これをDockerコンテナ上で実行し、DenoもインストールすることなくTypeScriptを動かしてみましょう。 Debian version 10.9 (ChromeOS 89.0 Chrostini Linux) Docker 20.10.6 deno 1.9.2 v8 9.1.269.5 typescript 4.2.2 Visual Studio Code 1.55.2
Denoを使うと、TypeScriptをコンパイルせずに実行できます。これをDockerコンテナ上で実行し、DenoもインストールすることなくTypeScriptを動かしてみましょう。 Debian version 10.9 (ChromeOS 89.0 Chrostini Linux) Docker 20.10.6 deno 1.9.2 v8 9.1.269.5 typescript 4.2.2 Visual Studio Code 1.55.2
DockerでPythonやRubyなど各言語のイメージを選ぶときに、alpine, buster, slim, stretch, jessie, slim-buster, windowsservercore, latestなど選択肢がたくさんありすぎて、どれを選べばいいのか、、と迷うことがあると思います。 ここでは、alpine, buster, slim, stretch, jessie, slim-buster, windowsservercore, latestなど、それぞれの違いやメリット・デメリット、どういった場合にどれを選ぶべきかをまとめています。 例:docker hubに用意されているRubyのイメージ 各バージョンのイメージに対したくさんのタグが用意されています。 https://hub.docker.com/_/ruby alpine, bullseye, buste
DockerやKubernetesなどのコンテナ技術は多くのシステムで用いられていますが、初心者が概要を理解するのは難しいもの。そんなコンテナ技術の概要について、クラウドストレージサービスを運営するBackblazeが分かりやすくまとめています。 What Are Containers? https://www.backblaze.com/blog/what-are-containers/ ・目次 ◆コンテナとは何か? ◆コンテナと仮想マシンの違いは? ◆コンテナのメリットは? ◆コンテナの用途は? ◆Dockerとは何か? ◆Kubernetesとは何か? ◆コンテナとは何か? 物流の世界における「コンテナ」は、形状やサイズを規格化し、異なるメーカーが製造した船舶・電車・トラックなどの移動手段や、世界中の港などの「異なる環境」でも同じように物を運んだり保管したりできるようにしたものです。
これはSupership株式会社の 「データソリューションスタジオ プロダクト開発グループ」における社内勉強会の発表資料を外部公開向けに再編したものになります。 アジェンダ ・tmpfsとは? ・tmpfsの良いところ ・tmpfsを用いる上で考えるべき点 ・tmpfsのベンチマーク ・以上を踏まえて tmpfs が有用と思われるケース ・アプリ向けコンテンツ配信基盤が抱えていた課題とtmpfsの検討と比較 ・Dockerコンテナ環境下におけるのキャッシュストアの選択肢 ・Rails Cacheって異なるプロセスで共有できるの? tmpfsとは? tmpfsはメインメモリをファイルシステムとして扱うことができるファイルシステムの名称 ・一昔前で言うならばRAM DISKのようなもの POSIX準拠の環境では /dev/shm にマウントされている ・ちなみにmac OSにはない tmpfs
コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう コンテナ技術を適切に活用するには、コンテナが「どうやって」動いているかを学びたいところ。はてなのエンジニアhayajo_77さんがコンテナの要素技術の勘所を解説します。 こんにちは。株式会社はてなでサーバー監視サービス「Mackerel」のSREを務めるhayajo_77( @hayajo )です。 さて、コンテナ技術はDockerの登場がきっかけとなり、本格的に活用が始まりました。現在はKubernetesを始めとするコンテナオーケストレーションツールや AWS, GCP, Azure などのクラウドサービスで提供されるコンテナマネジメントサービスを採用したサービス運用事例が数多く紹介されており、コンテナ技術は「理解する」フェイズから「利用する」フェイズに移ってきています。 コンテナそのものは上記のツールやサービスにより
Rails本の写経をdocker-composeで行なったときのTips。 TL;DR docker-composeで作ったRubyOnRailsコンテナでbinding.pryによるデバッグを行えるようにする。 前提 docker-composeでRails、Spring用のコンテナなど、複数コンテナを起動する形のRails環境を構築した。基本構成は以下の記事に習っている。 高速に開発できる Docker + Rails開発環境のテンプレートを作った 事前準備 Railsをデバッグ実行するために必要な設定ファイルの準備をする。 コンテナの標準入出力にアタッチするために、Dockerの設定をしておく。 docker-compose.yml ブレークポイントを貼るためのbinding.pryをするためのGemを追加する。 Gemfileはpry-railsの他にpry-byebugも追加して
みなさん、システムのドキュメント作成に疲弊してませんか? 私はいままで画面遷移図やワークフロー図などのシステムドキュメントはVisioやExcelで作っていました。ただVisioやExcelの場合にはシステムがある程度の大きさになってくると矢印が変なとこにくっついたり、配置が崩れたり(涙)結局、図面を作成するだけで時間がかかってしまう・・・そんな経験ありますよね・・・ そんな時、「PlantUML」というツールを使ってみたところ非常に簡単に図面が作れてしまいました!これは本当にマジで最高です!近年の中で一番オススメできるツールです!そこで今回はPlantUMLをDocker上にサクッと構築する方法をご紹介したいと思います。Dockerの環境があればさくっと5分以内で構築できます! また、VSCodeのPlantUMLの拡張機能を追加することでリアルタイムで図面をプレビューする方法やMark
Docker (Compose) の 自動再起動について ホストOSを起動したタイミングであるアプリケーションを自動で立ち上げたい、 あるいは何らかの問題で落ちた時に、自動で再起動して欲しい、というニーズは何処にでもあるかと思います。 今回は Docker Compose (以下単純にComposeと記します)に関して、コンテナの再起動や、他コンテナとの依存関係が設定されている場合に どのような挙動をとるのかを調べてみました。 なお、今回検証に使用した Compose バージョンは 1.6.0 です。 restart policy Docker 及び Compose では、 run/upの restart policy の設定することにより、 コンテナが停止した際の再起動にまつわる設置を行うことができます。 オプション 意味 no 再起動しない (デフォルト) on-failure[:ma
CMD と ENTRYPOINT の違い 先日の勉強会で Dockerfile における「CMD」と「ENTRYPOINT」の使い分けについて質問がありました。結論からしますとタイトル通り、ENTRYPOINTは「必ず実行」、CMDは「(デフォルトの)引数」なのですが、初学者にとっては分かりづらいところ。デモを交えながら、ブログでも改めて説明します。 (違いについては、既にいろいろなトコロでも言及されていますが、初学者向けにまとめました。私自身、初めて両者に触れた時は、全く理解できなかった!という思いもあります) コンテナ実行時の挙動と「CMD」命令 まず前提として、次のコマンドを実行したら、なぜ bash が起動するか分かりますか。コンテナ実行後にプロセスを確認しますと、/bin/bash がコンテナ内で PID 1 として動いています。 $ docker container run -
課題 数年前と比較すると、GKEやECSを始めとするコンテナ実行環境でのアプリケーション運用を行うサービスはかなり増えてきた印象があります。 コンテナを運用する上では、アプリケーションのイベントを追跡する上でログをどう扱うかが課題になります。今までのように古いログを定期的にローテートして別のストレージに転送するといった手法はクラウドネイティブなアーキテクチャには最適とは言えません。 アプリケーション開発の方法論として、Twelve Factor App ではログをイベントストリームとして扱うためのガイドラインが示されていますが、近年のWebアプリケーションではシステムを疎結合に連携するマイクロサービスという考え方が主流になりつつあります。 アプリケーションログはサービスごとにフォーマットを整形した上で、ログ収集サービスに配送。必要に応じてリアルタイム分析や異常データの通知、そしてデータの可
こんにちは、主に検索周りを担当しているエンジニアの伊藤です。 この記事は Enigmo Advent Calendar 2020 の 17 日目の記事です。 みなさんは適切なDockerfileを書けていますか?とりあえずイメージのビルドが出来ればいいやとなっていませんか? 今回は自戒の意味も込めて、改めてDockefileのベストプラクティスについて触れつつ、 そもそもDockerfileを書かずにコンテナイメージをビルドする方法とコンテナセキュリティに関する内容についてまとめてみました。 Dockerfileのベストプラクティス イメージサイズは極力小さくしよう ビルドキャッシュを活用しよう Dockerfileに関する悩みどころ Dockerfileを書かないという選択肢 Buildpack Cloud Native Buildpacks CNBの仕組み デモ CNBのメリット セキ
追記: 前提部分 開発環境を docker-compose で抽象することが最近のベストプラクティスだとされているが、フロントエンドをコンテナに突っ込むと無視できないIOボトルネックが発生する。 とくにwebpackのファイル監視からのビルドで発生する高頻度のIO処理を捌くために、フロントエンドだけはホスト環境に移したほうがいい、という主張。 これについて speakerdeck.com 自分の意見 Web開発者の主要な開発環境である Docker for Mac は I/O がとにかく遅い (3x~5x) data volume の driver やら cache を工夫しても遅い npm install/webpack は 基本的に I/O ヘヴィー とくに大規模開発時の watch => build がクリティカル webpack.conifg の entry で自分が関与する部分以
普段なんとなくで設定していたのですが、今の所こんな感じでやるのがいいんじゃない?というのをそろそろまとめたくなったので書いてみました。 もっといい方法があれば教えてください〜。 bundle install の実行のたびにDockerイメージのビルドし直しになるのを回避する bundle install をコンテナで行い、そのディレクトリをホストと共有する gem 用の volume を用意し、そこに格納する デバッガによる対話コンソールを有効にする Railsサーバのコンテナに attach する Railsサーバのコンテナだけ docker-compose up とは別に起動する 対話コンソールで利用されるページャ Springサーバーを有効にする bundle install の実行のたびにDockerイメージのビルドし直しになるのを回避する Quickstart にあるような構成で
docker-syncがどうも効いていないと思ったら。 docker-syncについて説明している多くのウェブサイトでは、以下のようにdocker-composeを呼び出すことを推奨している。というか、公式でこう言っている。 version: "2" services: someapp: image: alpine container_name: 'fullexample_app' command: ['watch', '-n1', 'cat /var/www/somefile.txt'] otherapp: image: alpine container_name: 'simpleexample_app' command: ['watch', '-n1', 'cat /app/code/somefile.txt'] version: "2" services: someapp: volu
今日やること data volume を理解し直す data volume ってなんぞ ボリュームは、Dockerコンテナによって生成され、使用されるデータを永続化するための推奨されるメカニズムです docs.docker.com Dockerコンテナの中のファイル/ディレクトリは、コンテナが終了すると削除されてしまう そのため、永続化したいデータがあるときに、data volume を使う data volume は、ホストのファイルシステムに作成されるディレクトリで、コンテナにマウントされる (普通は /var/lib/docker に生成されるらしい) また、特定のホストのディレクトリと紐付けることも可能で、その場合、ホストの特定のディレクトリをコンテナから参照できる (開発環境では主にこの使い方をするはず) data volume は、起動時の --volume (-v) オプショ
はじめに どうもこんちゃんです。最近開発環境にDockerを使用するようになって、いざ使ってみるとdocker for Macだと同期がクソ遅い問題(ページのロードで20秒)が発生してイライラしてたのが、docker-syncの導入で遅い問題が解決されたのでそれについて話していきたいと思います。 docker sync docker sync はホスト側のファイルを rsync や unison もしくは native_osx を使って転送するという仕組みを導入しています。なので、重たくなる原因でもあったホスト側のディレクトリをマウントしていません。 github.com いざ導入 インストール 公式によるとこれだけ gem install docker-sync docker syncの設定を追加する 下記の docker-compose.yml を例に設定を進めていきます。 docke
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く