並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 71件

新着順 人気順

dockerfileの検索結果1 - 40 件 / 71件

dockerfileに関するエントリは71件あります。 dockerコンテナ開発 などが関連タグです。 人気エントリには 『2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ』などがあります。
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみ食いして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 本エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基本的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

      2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    • 趣味で作ったソフトウェアが海外企業に買われ分野世界一になるまでの話 - knqyf263's blog

      2年前の2019年8月に以下のブログを書きました。 knqyf263.hatenablog.com 今回はその続きです。前回のブログは多くの人に読んでもらうことを意識して書きましたが、今回はそうではないです。特に得た学びを書くわけでもなく何で作り始めたのか?とかどんなことがあったのか?とか思い出話を書いているだけなので、言ってしまえば自己満足の記事です。それで構わない人や前回の記事を見てその後どうなったか気になった人だけが読んでもらえますと幸いです。 誰かのためになるわけでもない過去の出来事について語るのは老人感が強くて基本的に好きではないのですが、自分の中で一番大きかった目標を達成したので節目として書いています。 英語版の記事も会社のブログから公開しています。英語版のほうが簡潔で良い可能性もあります。日本語版は誤った解釈をされると嫌だからもう少し詳細に書こう、を繰り返していつも長くなりす

        趣味で作ったソフトウェアが海外企業に買われ分野世界一になるまでの話 - knqyf263's blog
      • Linuxコンテナの「次」としてのWebAssembly、の解説

        はじめに WASMをブラウザの外で動かすトレンドに関して「Linuxコンテナの「次」としてのWebAssemblyの解説」というタイトルで動画を投稿したのですが、動画では話しきれなかった内容をこちらの記事で補完したいと思います。 2022年もWebAssembly(WASM)の話題が多く発表されましたが、そのひとつにDocker for DesktopのWASM対応があります。FastlyやCloudflareもエッジ環境でWASMを動かすソリューションを持っていますし、MSのAKS(Azure Kubernetes Service)でもWASMにpreview対応しています。WASM Buildersでも2023年のWASMの予想としてWASMのアプリケーションランタイム利用に関して言及されました。 WASMといえば元々ブラウザ上で高速にC++のコードなどを実行するところから始まっている

          Linuxコンテナの「次」としてのWebAssembly、の解説
        • Dockerfileのベストプラクティス Top 20 | Sysdig

          本文の内容は、2021年3月9日にÁlvaro Iradierが投稿したブログ(https://sysdig.com/blog/dockerfile-best-practices/)を元に日本語に翻訳・再構成した内容となっております。Dockerfileのベストプラクティスのクイックセットをイメージビルドに適用することで、セキュリティ問題を防ぎ、コンテナ化されたアプリケーションを最適化する方法を学びます。コンテナ化されたアプリケーションやマイクロサービスに精通している人なら、自分のサービスがマイクロサービスであることに気づいているかもしれません。しかし、脆弱性の検出、セキュリティ問題の調査、デプロイ後の報告や修正など、管理のオーバーヘッドがマクロな問題になっています。このオーバーヘッドの多くは、セキュリティをシフトレフトし、開発ワークフローの中で可能な限り早く潜在的な問題に取り組むことで防

          • Dockerfileの考え方

            Dockerfileは、アプリケーション構成を保守可能な形で記録できる強力なツールです しかし、その真価を十分に発揮するためには、Dockerfileを書く人の理解がかかせません。 本スライドは、Dockerfileを利用してアプリケーションをデプロイするアプリケーション開発者を対象に、優れたD…

              Dockerfileの考え方
            • 今さら聞けないDocker入門 〜 Dockerfileのベストプラクティス編

              今時のアプリ開発において、コンテナは避けて通れないものになっています。そして数多くあるコンテナ実行環境の中でも、デファクトスタンダードと言えるのがDockerです。そんなDockerのイメージですが、皆さんは正しくビルドできていますか? そのコンテナは無駄に太っていませんか? 効率よく最短時間でビルドで…

                今さら聞けないDocker入門 〜 Dockerfileのベストプラクティス編
              • Dockerfileセキュリティ完全ガイド |脆弱性を防ぐ10のベストプラクティス

                はじめに Dockerをよく使う方なら避けては通れない道、Dockerコンテナのセキュリティについてまとめると同時に、Dockerfileのベストプラクティスに焦点を当てていこうと思います! Dockerのセキュリティとは Dockerのセキュリティとは、Dockerコンテナのビルド、ランタイム、オーケストレーションに関する側面を指します。 これには、Dockerベースイメージのセキュリティ対策、ユーザー権限の管理、Dockerデーモンの設定、コンテナのCPU制御など、ランタイムにおけるセキュリティ対策が含まれます。 さらに、大規模なDockerコンテナのオーケストレーションに関する課題にも対応する必要があります。 では実際にどのように対応していくのか、10項目のベストプラクティスを通して、具体的な対策を学んでいきましょう! Dockerのセキュリティに関する10項目のベストプラクティス

                  Dockerfileセキュリティ完全ガイド |脆弱性を防ぐ10のベストプラクティス
                • 作業環境をDockerfileにまとめて、macOSでもLinuxでもWSL2でも快適に過ごせるようになった話

                  作業環境をDockerfileにまとめて、macOSでもLinuxでもWSL2でも快適に過ごせるようになった話 こんにちは、CLI生活至上主義?の、 ひのしば です。 まぁ、至上主義というのは、ちょっと言い過ぎかもしれませんが、screen, vim, mutt, newsboat, pass, あとは、gitやssh 辺りを使う生活をしており、1日の作業がこれだけで完結するような事もあるような生活を送っています。 さて、そんな私が、ワークステーションサーバに、macOSや、Windows, Linuxから接続して操作するといった構成から、 作業環境をDockerfileにまとめ、手元で上がる環境をdockerコンテナへ統一し作業する構成とした話を紹介します。 この環境は、ここ数ヶ月、不自由なく使えている事もあり、自身の整理のためにも、どのような点が気になって対応したのかを挙げていきます。

                    作業環境をDockerfileにまとめて、macOSでもLinuxでもWSL2でも快適に過ごせるようになった話
                  • 「そのDockerfile、卒業しよう」実務で通用するベストプラクティス

                    概要 どうも、どすこい です! この記事では、Dockerfileを実務で扱う際に知っておくと大きく効率が上がる設計ガイドを書きました! Dockerそのものの仕組みには深入りせず、実際にDockerfileを書く場面でつまずきやすい部分だけを解説します! なお、扱う例はGoを想定しています。 この記事で行わないこと Dockerの基礎 ネットワーク、ボリューム、Docker Engineの詳細解説 なお、Dockerそのものについて知りたい方は以下のサイトがおすすめです! 対象読者 業務でDockerfileを0から書く機会を得たエンジニア 学習中で、Dockerfileのベストプラクティスについて知りたい方 この記事で伝えたいこと Dockerfileを最適化する際に何を判断基準にすべきかについて知る 解決したい課題 初心者が書くDockerfileには次のような課題が発生しやすいです

                      「そのDockerfile、卒業しよう」実務で通用するベストプラクティス
                    • Dockerfileのベストプラクティス8選

                      はじめに Dockerfileを書く上で、Docker社の推奨するベストプラクティスを8つにまとめました。 ベストプラクティスに従うことによって、簡単・安全・効率的な、Dockerfileの作成を目指します。 Dockerのガイドライン コンテナは、必要最小限(エフェメラル)であるべき。 Dockerfile で定義されたイメージを使って作成されるコンテナは、可能ならばエフェメラル(短命;ephemeral)にすべきです。私たちの「エフェメラル」とは、停止・破棄可能であり、明らかに最小のセットアップで構築して使えることを意味します。 Dockerfileベストプラクティス 1. Baseイメージは、公式の信頼できるものを使おう 特定の言語などを扱う場合は、公式が言語が入ったイメージを配布してくれている場合が多いので、そちらを使おう。

                        Dockerfileのベストプラクティス8選
                      • あなたのDockerfileはベストプラクティスに従っていますか?(ベストプラクティスとチェックツール) - Qiita

                        Dockerfileのベストプラクティス ベースイメージには公式のレポジトリを使用する FROM命令において、使用するベースイメージは公式のリポジトリのものを使用し、軽量なものが推奨されている。 例えば、Debian イメージなど。 FROM [--platform=<プラットフォーム>] <イメージ名> [AS <名前>] FROM [--platform=<プラットフォーム>] <イメージ名>[:<タグ>] [AS <名前>] FROM [--platform=<プラットフォーム>] <イメージ名>[@<ダイジェスト>] [AS <名前>]

                          あなたのDockerfileはベストプラクティスに従っていますか?(ベストプラクティスとチェックツール) - Qiita
                        • Dockerfile のベスト・プラクティス — Docker-docs-ja 19.03 ドキュメント

                          このドキュメントは、効率的なイメージ構築のために推奨するベストプラクティスを扱います。 Docker は Dockerfile に書かれた命令を読み込み、自動的にイメージを構築します。 Dockerfile はイメージを構築するために必要な全ての命令を、順番通りに記述したテキストファイルです。 Dockerfile は特定の書式と命令群に忠実であり、それらは Dockerfile リファレンス で確認できます。 Dockerfile の命令に相当する読み込み専用のレイヤによって、 Docker イメージは構成されます。それぞれのレイヤは直前のレイヤから変更した差分であり、これらのレイヤは積み重なっています。次の Dockerfile を見ましょう。 命令ごとに1つのレイヤを作成します。 FROM は ubuntu:18.04 の Docker イメージからレイヤを作成 COPY は現在のデ

                          • Visual Studio Code と Docker コンテナを使って開発する - Pepabo Tech Portal

                            技術部データ基盤チームの @zaimy です。今回は、 Visual Studio Code(以下 VS Code)と Docker コンテナを使って開発環境を構築する方法を紹介します。 データ基盤エンジニアの開発環境として、Python を使用する単一コンテナを例に記述しますが、他の言語や Docker Compose を使う場合でも応用できます。 背景: M1 Mac (Monterey) に Python 3.8.12 をインストールできない 先日、業務で使用するマシンを Intel Mac から M1 Mac に切り替えたのですが、CPU アーキテクチャが異なることに加えて、OS のバージョンが上がったことで Apple Clang に下位互換性のない変更が入っており、業務上ある理由で必要な Python 3.8.12 のインストールが困難でした。 そこで、私の所属するチームは全員

                              Visual Studio Code と Docker コンテナを使って開発する - Pepabo Tech Portal
                            • VSCode のリモートコンテナ機能を用いて、あるリポジトリ専用の環境を開発者間で統一する

                              概要 VSCode のリモートコンテナ機能を用いると、開発環境を dockerfile の形でコード管理することができます。これにより、開発者が開発に用いる環境をリポジトリごとに統一できます。 VSCodeのリモートコンテナ機能とは コンテナの中に開発環境を押し込んで、その中にディレクトリをマウントして開発するVSCodeの機能です。 リモートコンテナ機能を用いて開発するメリット リモートコンテナ機能を用いて開発することには以下のようなメリットがあります。 local環境を汚さない 複数のプロジェクトで開発するにつれて、local マシンにはそのための様々なアプリ・設定が導入されていきます。この状態には以下のような欠点があります。 導入されたアプリや設定が膨大になって管理しきれなくなり、何のために導入されたか、変更してよい設定なのかが分からなくなる 異なるプロジェクトで必要な設定・アプリ同

                                VSCode のリモートコンテナ機能を用いて、あるリポジトリ専用の環境を開発者間で統一する
                              • Dockerによる開発環境構築のための概念理解と方法解説 - Qiita

                                この記事はNuco Advent Calendar 2023の9日目の記事です。 はじめに この記事ではDockerで開発環境を行うために理解してほしい概念と実際の開発環境の構築手順について解説を行います。大きく分けて、 ・Dockerの概念理解 ・開発環境の構築 これらの章により構成されています。この記事を読むことで、Dockerファイル、イメージ、コンテナ、Docker compose、compose.ymlを理解できるようになることを目指しています。Dockerに触れてみたい、Dockerの理解があやふやという方は参考にしてみてください! Dockerとは まず、Dockerに対する理解をしていきましょう。 Dockerとは「コンテナ型の仮想環境を作成、共有、実行するためのプラットフォーム」です。クジラのようなアイコンが特徴的です。 私が最初に勉強をした時に、 「コンテナ型の仮想環境

                                  Dockerによる開発環境構築のための概念理解と方法解説 - Qiita
                                • FastAPI on Dockerがかなりシンプルになった(2025年版) | フューチャー技術ブログ

                                  5 年ほど前に Python のコンテナ化について 2 つの記事を書きましたが FastAPI 側も Docker 側もアップデートがあり、当時よりもかなりシンプルになってきたのを感じたので少し調べてまとめてみました。 書き方の部分は別として Python におけるコンテナイメージ選択の考え方とかは 2020 年に書いたときとは変わっていませんので、適宜そちらを参照してください。 仕事で Python コンテナをデプロイする人向けの Dockerfile (1): オールマイティ編 仕事で Python コンテナをデプロイする人向けの Dockerfile (2): distroless 編 (1)の方からのアップデートとしては Debian のバージョンですね。stretch(9), buster(10)はすでに EOL です。その次に出た bullseye(11)は 2026 年 8

                                    FastAPI on Dockerがかなりシンプルになった(2025年版) | フューチャー技術ブログ
                                  • Dockerfile自信持って書けてますか?おすすめlintツール 「hadolint」について紹介 - Qiita

                                    はじめに Dockerfile、サッと書こうと思ったのに、書き始めたら意外と時間かかったりしますよね。 突き詰めるとすごく奥が深いなと思います。 公式のドキュメントでも、Dockerfileのベスト・プラクティスという形で公開してくれていますが、 これを毎回意識するのは大変です。 また、意識できていたとしても、複数人で管理していると、各個人のスキルレベルによって差が出てしまいます。 そんなときにおすすめのツールを見つけたので紹介します。 hadolintというツールです。 Haskell Dockerfile Linterの略だそうで、Dockerfileの静的解析を行ってくれるlintツールです。 hadolintを使うとこんな利点があります。 build前にシンタックスエラーなどに気付ける (地味にトライアンドエラーしてると時間食うんですよね...) 自然とベストプラクティスに則ったD

                                      Dockerfile自信持って書けてますか?おすすめlintツール 「hadolint」について紹介 - Qiita
                                    • 【2024年版】Dockerfileのベストプラクティスを整理しながらNode.jsで実践する

                                      はじめに 最初はなんとなくで書いていたDockerfileなのですが、社内用にベストプラクティスを整理するタイミングがあったので、実際にNode.js + TypeScriptでアプリケーションを作成しながらまとめることにしました。 この記事でフォーカスするのは、 Dockerfileのベストプラクティスそのものの詳細ではなく、それらを整理と「結局どう実装すんねん?」ってところです。 主に以下の内容を参考にしています。 想定読者 Node.jsにおけるDockerfileのベストプラクティスの具体を知りたい方についてはピッタリだと思いますが、その他の言語でも参考になる部分はあると思います。 本記事では、各用語やベストプラクティスの詳細は記載しませんが、該当箇所へのリンクを載せているので必要に応じて参照してください。 また、この記事に書いていない内容で、上記3つの記事に書かれているベストプラ

                                        【2024年版】Dockerfileのベストプラクティスを整理しながらNode.jsで実践する
                                      • Docker のキャッシュを全力で使いこなそう

                                        tl;dr 依存パッケージのダウンロードは最初に実行しよう マルチステージビルドは必須と覚えておこう RUN --mount=type=cache を使おう(でも BuildKit を使えるかは確認して!) pnpm fetch も期待大 はじめに みなさん,Docker を使って開発するときに依存パッケージのダウンロードをずっと待ち続けた経験はありませんか?「依存パッケージの追加なんて頻繁に発生しないし,我慢しよう…」と妥協している方も多いでしょう. 頻繁に発生しない?本当にそうですか? 追加ではなくても依存パッケージの更新なんてよく発生するし,ベースイメージを更新することもあります.その度に全部ダウンロードし直しなんて堪ったもんじゃありません.モバイル回線だったら一瞬でギガがなくなっちゃいますよ! ということで,この記事ではキャッシュを活用して依存パッケージのダウンロードが何度も発生し

                                          Docker のキャッシュを全力で使いこなそう
                                        • 今からDockerを始める人へ!Docker Initがアツい!

                                          package main import ( "net/http" "github.com/labstack/echo/v4" ) func main() { e := echo.New() e.GET("/", func(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }) e.Logger.Fatal(e.Start(":1323")) } # syntax=docker/dockerfile:1 # Comments are provided throughout this file to help you get started. # If you need more help, visit the Dockerfile reference guide at # https://docs.

                                            今からDockerを始める人へ!Docker Initがアツい!
                                          • 初心者がDockerfileを書くときに身につけたい5つの習慣 - Qiita

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

                                              初心者がDockerfileを書くときに身につけたい5つの習慣 - Qiita
                                            • 1時間でさわって学ぶDocker

                                              Dockerを触りながら学んでいく、初心者向けの記事です。 用語の解説等はほとんどせずに、とにかく触ってみることを目的としています。 Phase 1: Dockerの基本 コマンドを試しながら基本操作を学びます。 Phase 2: Dockerfileをもう少し書いてみる Dockerfileを使って、簡単なWebアプリケーションを作成します。 Phase 3: Docker Composeを使ってみる Docker Composeを使って、複数のコンテナを一括管理します。 Phase 1: Dockerの基本 Dockerの基本的な操作を試してみます。 プロジェクトフォルダの作成 次のコマンドを実行して、プロジェクトフォルダを作成します。

                                                1時間でさわって学ぶDocker
                                              • Introduction to heredocs in Dockerfiles | Docker

                                                For individual developers who need the essential tools to build and deploy containers.

                                                  Introduction to heredocs in Dockerfiles | Docker
                                                • Docker Compose な開発環境にちょい足し3分で作るVSCode devcontainer

                                                  こんにちは、devcontainer職人です🧑‍🍳 今回紹介するのはDocker Composeを既に利用している開発環境にかんたんにdevcontainerを構築する方法を紹介します。 VSCodeのdevcontainerはとても良くできた開発環境構築方法なのですが、ちょっと難しそうと思われていたり、VSCode以外のエディタを使う人の開発体験が悪くなるのでは、などの懸念がありまだあまり使われていないような印象があります。今回はそんなdevcontainerを3分で作れるtipsを紹介します。 準備するもの Docker Composeで構築した開発環境 VS Code Docker Desktop for Windows/Mac Remote - Containers extension Docker Composeで構築した開発環境のサンプル 今回用意するのはサンプルとしてRu

                                                    Docker Compose な開発環境にちょい足し3分で作るVSCode devcontainer
                                                  • オープンなLLMをローカルPCのDocker環境で動かす

                                                    次々と発表されるオープンな日本語大規模モデル どうなっているの??という感じですよね。 我らがnpakaさんは、さっそくGoogle Colabで動かしていらっしゃいます。 ただ、Google Colabだと毎回モデルのダウンロードが大変なので、ローカルでDocker使って手軽に動かせるといいな、ということでやってみました。 以下GitHubのリポジトリにDockerfileとサンプルプログラムをおいています。チャットっぽいことをできるようにしています。 上記で、サイバーエージェントとリンナのLLMが両方動きます。 使用環境 前提となる環境です。使用しているPCのスペックは以下です。 項目 内容

                                                      オープンなLLMをローカルPCのDocker環境で動かす
                                                    • 今更聞けないDockerのしくみ(「Dockerとは?」から「docker-composeファイルを1人で作れるようになる」まで) - Qiita

                                                      はじめに なんとな〜くdockerを使い始めてはや4年ほど。 既存のプロジェクトにアサインされた場合はdockerファイルに何が記載されているかなんて意識せずコマンドを実行するだけで、何か自分で一から作る時は、誰かが作ったものをどこからか持ってきて済ませていた。 こんな感じなのでdockerをなんとなく扱えてはいるが細かいところを全く理解できてない。 今回は人に説明できるくらい理解できるようになろうとした男の記事です。 ハンズオン形式でやっていきますので一緒に手を動かしながらやってみていただけると嬉しいです。 対象とする読者 これからdockerをは0から理解したい人 なんとなくdocker触っちゃってて理解していない俺みたいな人 (でもLinux多少知っていないと少し大変かもです) Docker, docker image, docker container, docker-compos

                                                        今更聞けないDockerのしくみ(「Dockerとは?」から「docker-composeファイルを1人で作れるようになる」まで) - Qiita
                                                      • Docker Compose Watchのすすめ - Hatena Developer Blog

                                                        やあ!id:cockscombです。日々の生活に役立つちょっとした知識を紹介していきます。最近は、Apple WatchやPixel Watchみたいな、ナントカWatchのリリースが多いですね。でも今日紹介するのは、WatchはWatchでも、Docker Compose Watchです。 Docker Composeは、複数のコンテナを扱った開発に用いる道具で、コンテナを活用した開発では当たり前に使われている。そのDocker Composeに、ファイルの変更を監視してコンテナの再構成を行わせるのが、Docker Compose Watchだ。Docker Compose 2.22以降で利用できる。最新のDocker Desktopにも付属している。 ホットリロードとコンテナ開発 Docker Compose Watchがどういうものかを説明する前に、Next.jsのホットリロードにつ

                                                          Docker Compose Watchのすすめ - Hatena Developer Blog
                                                        • Dockerfileを解析、最適化やベストプラクティスをガイドしてくれる「Docker Buildチェック」機能が正式版に

                                                          Dockerfileを解析、最適化やベストプラクティスをガイドしてくれる「Docker Buildチェック」機能が正式版に Docker社は、Dockerfileを解析して最適化とベストプラクティスをガイドしてくれるツール「Docker Buildチェック」機能の正式版をリリースしました。 Docker Buildチェックは、WindowsやMacなどのデスクトップ環境にDockerコンテナ環境を簡単に導入できるDocker Desktopの最新版として7月29日にリリースされた「Docker Desktop 4.33」の機能として提供されます。 Dockerfileとは、Dockerコンテナを構成するさまざまなファイルを取得し、ビルドを実行してDockerコンテナイメージを作成する際の手順書といえます。 そのため、Dockerfileはビルドが正常に実行されるようにバグがないように手順を

                                                            Dockerfileを解析、最適化やベストプラクティスをガイドしてくれる「Docker Buildチェック」機能が正式版に
                                                          • 踏み台にはECSコンテナを。~ログイン有無を検知して自動停止させる~ - NRIネットコムBlog

                                                            こんにちは、後藤です。今回はAWS構成における踏み台についての記事です。 データベースなどのインターネットに繋げたくないリソースに踏み台リソース経由でアクセスさせることは、セキュリティ設計としてよくある構成だと思います。 今回はその踏み台リソースに「ユーザーログイン有無を検知して自動停止する」ロジックを組み込んだ方法を共有します。 また、一般的によく用いられるのはEC2だと思いますが、今回はECS on Fargate(以降はFargateと略)を使います。しかも自動停止ロジックにLambdaを使いません!!コンテナの中で完結させます。 踏み台を設計する時に気になること そもそも踏み台について設計する際に何が気になるのでしょうか。それはOS管理負担と自動停止です。 踏み台にEC2を用いるとOSパッチ適用などの運用コストが発生します。業務系サーバでないのに心労が重なるのはなるべく避けたいとこ

                                                              踏み台にはECSコンテナを。~ログイン有無を検知して自動停止させる~ - NRIネットコムBlog
                                                            • RustのDockerfile、2025年はこれでいこう - じゃあ、おうちで学べる

                                                              はじめに 「Dockerでビルドすると遅いんだよね」「イメージが2GB超えちゃって…」 そんな会話はもう過去の話です。2025年、コンテナ化は劇的に進化しました。Rustも例外ではありません。cargo-chefとBuildKitキャッシュマウントの組み合わせでビルド時間を5-10倍短縮、2.63GBのイメージをdistrolessイメージで約50MB、musl静的リンクならわずか1.7MBという値を達成できます。 この記事では、実践的なDockerfileパターンとベンチマーク結果を詳しく解説します。 実際に検証したAxum Webアプリケーションでは、distroless版で50.3MB、musl+scratch版で1.71MBを達成しました。中規模プロジェクト(約500の依存関係)での初回ビルドは10分、コード変更後の再ビルドはわずか40秒です。 信じられないかもですが、これが202

                                                                RustのDockerfile、2025年はこれでいこう - じゃあ、おうちで学べる
                                                              • Dockerの"分からない"を簡単にメモ - Qiita

                                                                概要 前提 規約 コンテナはエフェメラル(短命:ephemeral)であること .dockerignoreを有効活用する 不要なパッケージのインストールを避ける コンテナ毎に1つのプロセスだけ実行 レイヤーの数を最小に 複数行の引数はアルファベット順、改行すること Docker network 概要 bridge none host overlay ipvlan macvlan Docker Volume 概要 bind mount volume tmpfs mount Dockerfileを扱う まずはDockerfileを作成する! FROM:ベースイメージを作成 RUN: 任意のコマンドを実行する WORKDIR: ワークディレクトリを追加する レイヤーの確認 コンテナの生成と停止 imageを作成 runでコンテナを起動 stopでコンテナを停止 pruneでDockerのお掃除

                                                                  Dockerの"分からない"を簡単にメモ - Qiita
                                                                • 複数の環境でDockerfileを共通化するために使えるtips

                                                                  前提 コンテナを用いてアプリケーションのワークロードを構築することにはいくつかの利点があります。 なかでも、下記に上げられるポータビリティと環境の再現性は非常に強力です。 ポータビリティ コンテナは、アプリケーションとその依存関係をコンテナ内にパッケージ化します。 これにより、開発環境で構築したコンテナを本番環境にデプロイする際にも、一貫した動作が期待できます。 異なる環境間でアプリケーションを移行する際に、互換性の問題や依存関係の不一致が生じるリスクが低減され、ポータビリティが高まります。 環境の再現性 コンテナは環境に依存しないため、開発者が特定の環境でアプリケーションを構築した場合でも、他の開発者や運用チームが同じ環境を再現することが容易です。 コンテナイメージにはアプリケーションのコードとその実行環境が含まれており、イメージを共有することで他の人が同じ環境でアプリケーションを実行で

                                                                    複数の環境でDockerfileを共通化するために使えるtips
                                                                  • Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ

                                                                    はじめにSHIFT DAAE の shinagawa です。表題の通りNode.jsで作成したコンテナのイメージサイズの軽量化に挑戦しました。 背景近年の多様化・高速化するビジネスに対応するITシステムの構築を実現する「クラウドネイティブ」の構成要素の一つとして 「コンテナ」という仮想化技術が存在し、当部門でも活用を進めております。 このコンテナイメージを作成するにはアプリケーションコードやライブラリ・モジュールなどの依存物、ランタイム等を1つのイメージとして組み立てて作成しますが、 この構成要素が増えるとイメージサイズが肥大化し保管時のストレージのコストの増加やイメージの転送、環境への展開に時間がかかることになります。 従ってイメージのサイズを削減することは、これらの点を改善することにつながります。 ここではネット上で紹介されている、あらゆる打ち手を組み合わせてコンテナイメージの軽量化に

                                                                      Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ
                                                                    • hadolintを使ってDockerfileをベストプラクティスに沿った状態に保つ

                                                                      技術記事は 個人ブログ へお引越ししました。 興味を持ってくださった方はZennではなくこちらをご購読いただければと思います🙏 Dockerは公式にDockerfileのベストプラクティスを表明しています。 が、このベストプラクティスに沿っているかどうか?を人間がいちいちレビューしていくのは正直しんどい、というか現実的ではない… そこで「せや!静的解析したろ!」という時に便利なのがhadolintというライブラリです。 使ってみる 今回はVSCode拡張機能とGHAのCI時に静的解析してもらいたいと思います。 今回はちょうどメンテナンスしていない自分のリポジトリがあるので、これに対して静的解析をかけていきます。 まずはVSCode拡張機能で利用するための下準備として、hadolint本体をOSにインストールします。 Macの場合はこちら。 docker/php/Dockerfile:8

                                                                        hadolintを使ってDockerfileをベストプラクティスに沿った状態に保つ
                                                                      • GitHub Actions上のRustアプリのDockerイメージビルドを高速化する - blog.endflow.net

                                                                        Rust + Docker + GitHub Actions = めちゃ遅い 以前、GitHub Actions 上の Rust ビルドを高速化する記事を書いたけど、 今回は Kubernetes 環境にスムーズに移行できるよう Docker イメージ化するという要件も加わったことで、改めて試行錯誤する必要が出てきた。 それぞれに対するビルド速度の最適化は存在しているものの、3つ (Rust, Docker, GitHub Actions) すべてを満たすとなるとコピペで終わるほど情報がまとまってないし、見つけた Tips もちょっと古かったり、これというものは見つけられなかった。 公式ドキュメントを見ると正当進化していて新しいオプションが生えていたりしたので、賞味期限は短そうだけど、自分の試行錯誤の結果を残しておこうと思う。 成果としては 12 分 22 秒かかっていた Rust アプリ

                                                                        • Dockerが提供するDockerfileリンターを使ってみる - 風に吹かれても

                                                                          このエントリは はてなエンジニア Advent Calendar 2025 9日目の記事です。今日はid:ymseがお届けします。 3行まとめ HadolintのようなDockerfileリンターがDockerにも組み込まれている Hadolintのほうがルール自体は多い それぞれ一長一短ある 目次 3行まとめ 目次 正しくDockerfileを書くのは難しい Docker組み込みのbuild checksを実行してみる コマンド実行で検査する build 実行時に合わせて検査する Hadolintの出力と比較する どちらがいいの 正しくDockerfileを書くのは難しい 大コンテナ時代においてみなさまDockerfileを書いているのではないでしょうか。 そんなDockerfileですが適当に書くとイメージサイズが大きくなったり、思わぬアタックサーフェスを増やしてしまったり、ビルド時に

                                                                            Dockerが提供するDockerfileリンターを使ってみる - 風に吹かれても
                                                                          • executableの場所を探すときwhichではなくcommandを使う習慣 - yujioramaの日記

                                                                            whichを使わない一番の理由はcoreutilsに入ってないから(commandはたいていのshellでbuiltin functionになっている)。 ash(1): command interpreter - Linux man page dash(1) - Linux manual page Bash Builtins (Bash Reference Manual) たぶんDockerfileでいろいろやっているときに身についた振る舞いだと思う。 ポータビリティを高めるとかの高い意識ではなく、何度もcommand not foundに遭遇して面倒になったことが主な動機で、そこから派生してwhichコマンドの存在を無視する(頼らない)ようになった感じ。 あと、軽量なDockerイメージを作るのがかっこいいと見做された時期があって(時期というより原則だけど)、インストールするパッケージ

                                                                              executableの場所を探すときwhichではなくcommandを使う習慣 - yujioramaの日記
                                                                            • Dockerfileを自前で書かずにCloud Runを動かす技術

                                                                              技術記事は 個人ブログ へお引越ししました。 興味を持ってくださった方はZennではなくこちらをご購読いただければと思います🙏 導入 ローカルの開発環境は各々のマシンに直接構築し、STGや本番はコンテナの上で動かす。 こういった構成を取ることは珍しくありません。 あるいは、開発用にいろいろライブラリを入れたDockerfileと、本番用に最小限のライブラリのみを入れた構成を取ることもあるでしょう。 このような場合はいずれにしても、Dockerfileを書くということからは逃れられません。 今回は、 ローカルの開発環境は各々のマシンに直接構築し、STGや本番はコンテナの上で動かす。 という場合に、Dockerfileを開発者が書かずにCloud Runへコンテナイメージをデプロイし、アプリケーションを動かす技術について、実践してみた経験を書いてみようと思います。 アプリケーション 今回はn

                                                                                Dockerfileを自前で書かずにCloud Runを動かす技術
                                                                              • ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル

                                                                                おなじみの画像 JavaやScalaといったJVM言語のDockerイメージは、JVMを同梱しなければならない都合で肥大化しがちである。特に何もしなくても、例えば一般的なamazoncorretto:21のイメージサイズは217.7 MBもある。 hub.docker.com これにさらにビルド済みのJARファイルが載ってくるので、結構大きくなってしまうのだ。 そこで、Scalaのコンテナイメージのサイズをなんとか小さくできないかと、考えた。すると、JVMを使ったまま70 MiBくらいに縮めることができた。 github.com コンテナイメージのサイズを小さくするために、何をしたかを書いていく。ちなみに題材としたアプリケーションはちょっとしたHello, Worldをするだけのもので、ライブラリはCatsに依存させた。 JVM使う編 マルチステージビルドを行う Alpineなどの軽量ラン

                                                                                  ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル
                                                                                • buildkit/frontend/dockerfile/docs/syntax.md at dockerfile/1.4.3 · moby/buildkit

                                                                                  BuildKit supports loading frontends dynamically from container images. Images for Dockerfile frontends are available at docker/dockerfile repository. To use the external frontend, the first line of your Dockerfile needs to be # syntax=docker/dockerfile:1.3 pointing to the specific image you want to use. BuildKit also ships with Dockerfile frontend builtin but it is recommended to use an external i

                                                                                    buildkit/frontend/dockerfile/docs/syntax.md at dockerfile/1.4.3 · moby/buildkit

                                                                                  新着記事