いまやWebアプリの開発やデプロイにおいて、コンテナは欠かせないものになってきました。 コンテナ実行環境にも色々ありますが、その中でも支配的なのがDockerでしょう。 ですがDockerは、その構造上いくつかの問題も抱えています。 今回はDockerと互換性を持ちながらも、よりセキュアに運用できるPo…
こんにちは、機械学習チーム YAMALEX の駿です。 YAMALEX は Acroquest 社内で発足した、会社の未来の技術を創る、機械学習がメインテーマのデータサイエンスチームです。 (詳細はリンク先をご覧ください。) 最近は GPT-4o や Claude 3 を使ったアプリを、せっせと実装したりしていたのですが、Difyの登場により「もう、これでいいじゃん」という気持ちが抑えきれていません。 今回はそんなDifyを使って、「LLM自体の知識が足りないときにGoogle検索を行って回答するチャットボット」を作ってみました。 Google検索して答えてくれる 1. 概要 1.1. Difyとは 2. 環境構築 3. アプリ作成 3.1. 各ブロックの簡単な説明 4. 動かしてみる 5. まとめ 1. 概要 1.1. Difyとは Difyは、大規模言語モデル(LLM)を活用したアプリ
「OrbStack」とは What is OrbStack? OrbStack is a fast, light, and simple way to run Docker containers and Linux machines on macOS. You can think of it as a supercharged WSL and Docker Desktop replacement, all in one easy-to-use app. OrbStack は、macOS で Docker コンテナと Linux マシンを実行するための高速で軽量、 かつシンプルな方法です。 これは、使いやすい 1 つのアプリにまとめられた、強化された WSL と Docker Desktop の代替品と 考えることができます。 ※ powered by Google翻訳 ざっくり読むと、「D
はじめに PythonのDockerfileを作成する際、ネット上で適切な情報が見つからず、試行錯誤することがあります。そこで、ここでまとめてみます。 完成品 # 開発用ステージ FROM python:3.11.9-slim-bookworm AS developer ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends \ wget=1.21.3-1+b2 \ && apt-get -y clean \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip install --no-cache-dir -
はじめに Lambda Web Adapterという、HTTPで動くコンテナに対して仲介してLambdaで動くようにしてくれるツールがあります。 これを使って、Rのplumberをコンテナにして動かしてみました。 以前Lambdaで、plumberのようなRのREST APIを作りましたが、Lambda Web Adapterを使えば、plumberを使えるのでかなり楽です。 概要 Lambda非サポートのRを、Lambda Web Adapterを用いて実行 Webアプリを対象としているので、plumberを使用 参考 やってみた 環境はCloud9のm5.largeを使いました。t3.smallでもできますが、docker buildの時間が(m5.largeであれば)6分程度ですが、(t3.smallだと)10分以上かかります。 ECRへのPUSHまで 過去の記事を参考に、ECRへの
最近docker buildxを使ったmulti-platform build周りについての知見がある程度溜まってきたので必要そうな情報をまとめておく。 buildx自体が実際に使うとハマりどころが多いので、すんなりと納得できるような文章がかけてないとは思うけど、実際に触る人がハマったり疑問に思ったりする内容の穴埋めはある程度できてるとは思ってる。 ちなみにこの記事を書いてる時点のdocker-buildxの最新バージョンがv0.9.1なので、貼ってあるbuildxのリンクについては基本このバージョンのものになる。 docker-buildxってなに? リポジトリを見ると docker buildのようなUI コンテナードライバーによる完全な BuildKit 機能 複数のビルダーインスタンスのサポート クロスプラットフォーム イメージのマルチノードビルド Compose ビルドのサポート
はじめに 最近 Lambda 上で Selenium を動かしていたのですが、Python3.12 へランタイムを上げたことで動作しなくなってしまいました。 これまでは Lambda レイヤーを使って chromedriver と headless-chromium をレイヤー化する方法を利用していました。 しかし Lambda のランタイムが変わると互換性の関係からうまくいかなくなります。 動作しなくなった原因は Selenium で利用するchromedriverやheadless-chromiumの互換性がないことです。ここが Lambda 上で Selenium を使う上で一番面倒なところで、新しいバージョンを使おうとしても、どのバージョンが正しく動作するのかが分かりません。 そこで、調べていたところdocker-selenium-lambdaという Lambda 上で Selen
VSCode の更新情報を見ていたら Dev Container の仕様と、リファレンス実装の CLI ツールについて記載がありました。 Development Container specification Our development container teams across Microsoft and GitHub continue active development on the new Dev Container Specification, and this iteration had several exciting highlights. どういう風にやってきたのか Dev Container(devcontainer) の元は VSCode の Remote - Containers で使われている開発コンテナ(とその設定ファイル)のことです。これを VSCode
Amazon ECR とは コンテナのワークフローとレジストリの役割 コンテナをベースとしたワークフローを組んだ場合、「Build, Ship, Run」に基づき整理すると下記にようになります。 アプリケーションのソースコードとDockerfileというコンテナイメージを構築するためのファイルを用意し、イメージを作成していきます。 Dockerfileというのは、このファイル上にコマンドを記述することで、アプリケーションに必要なライブラリをインストールしたり、コンテナ上に環境変数を指定する役割を持ちます。 さて、ここで重要になってくるのはこのコンテナイメージを保存する先ですね。 そこで出てくるのが、レジストリと呼ばれるものです。 レジストリとは、コンテナイメージを保存するサービスで、Dockerレジストリを基点としてさまざまなプラットフォームにイメージを配布したり、利用者間でイメージを共有
はじめに 冬休みに12ステップで作る 組込みOS自作入門を完走したをkozosを完走しました。 そのときの備忘録になります。 12STEPの各内容は以下のようになっています。 第1部 ブート・ローダーの作成 1stステップ 開発環境の作成 2ndステップ シリアル通信 3rdステップ 静的変数の読み書き 4thステップ シリアル経由でファイルを転送する 5thステップ ELFフォーマットの展開 6thステップ もう一度,Hello World 第2部 OSの作成 7thステップ 割込み処理を実装する 8thステップ スレッドを実装する 9thステップ 優先度スケジューリング 10thステップ OSのメモリ管理 11thステップ タスク間通信を実装する 12thステップ 外部割込みを実装する 1STEP、1commit単位でまとめて進めていきました。レポジトリは以下にあります。 環境構築 マ
はじめに こんにちは。今年クラウドエース株式会社に新卒入社し、現在 SRE をしている渋谷と申します。 自分の愛車は MAZDA の RX-8 という車なのですが、この車に搭載されているロータリーエンジン(おにぎりエンジン)にちなんで、自分が執筆する記事のアイキャッチは 🍙 にすることにしました。 さて、この記事では GUI を用いてコンテナを管理・操作する際に使用されるコンテナ管理ツールとして代表的な以下の 3つのツールを紹介し、機能検証を行います。 Docker Desktop Rancher Desktop Podman Desktop それぞれのコンテナ管理ツールのメリット・デメリットを解説し、最後に自分が選んだコンテナ管理ツールを紹介します。 自分の用途に合ったコンテナ管理ツールを選択することで、より快適に Docker を使用することができるようになると思いますので、ぜひ参考
こんにちは。サイボウズ株式会社 生産性向上チームの平木場です。 僕たち生産性向上チームは毎週水曜日に Productivity Weekly という「1 週間の間に発見された開発者の生産性向上に関するネタを共有する会」を社内で開催しています。 本記事はその時のネタをまとめたものです。 2023-01-25 号から、基本的に隔週で連載することとしました。たまに単独でも投稿するかもしれません。 今週は 2023-12-20 単独号です。 今回が第 137 回目です。過去の記事はこちら。 生産性向上チームのマスコットキャラクター、セイサンシャインくん爆誕 news 📺 GitHub Actions - Artifacts v4 is now Generally Available - The GitHub Blog actions/upload-artifactとactions/downloa
tl;dr BuildKitのお陰で様々なbuildでの恩恵が受けられている buildxのお陰で今まで利用していたdockercliのままBuilkdKitが使えている もっと有効活用したい機能が沢山ある。。。 長いです。。。こちらのNTTの徳永さんのスライドがとてもわかり易い & 纏まっていておすすめです はじめに 相当前ですが、dockerにbuildxコマンドが入ったことでなんとなくBuildKitというものを認識して使っていました。 ただ、その中でもmulti-platform buildを雰囲気で使っていたくらいで、 他にどういう機能があるのか、そもそもBuildKitって何?みたいなことはあまり考えていませんでした。 先日、--mount=type=sshを使うときに少し嵌って調べたところ、様々な機能や重要なconceptを知らなかったことに気づいたので調べたことをまとめたい
(仮想化の仮想化)Windows11にHyper-V経由でWindows11+WSL2をインストールしてElixir, Phoenixの開発環境を量産するElixir仮想化Hyper-VPhoenixWSL こんにちは! プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。 今回はWindows11に対してHyper-Vを用いたElixir開発環境を量産する方法をまとめます。 目的 ElixirのElixir, Phoenixを量産したい。 (環境構築の練習がしたい。かつ、万が一何かやらかしてもOSごと壊せばいいやという環境を作りたい(;^ω^)) 実行環境 Windows 11(以降ホストOSはHyper-Vを使える前提で進めます) 目標 こちらの記事に沿って、VM内にElixirの開発環境を構築したい。 ホストOS上のVMの中にさらに
こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 この記事は、 NewsPicks Advent Calendar 2023 の23日目の記事になります。 qiita.com 昨日ははぐっさんによる「SwiftUIのKeyframeAnimatorでちょっとしたカードアニメーション 〜猫の手を添えて〜」でした! はじめに コンテナ流儀: 必要最低限のものだけで運用する Point1)レイヤーは少ないほどいい TIP:ベースイメージを作る Point2)不要なパッケージをインストールしない Point3)いつ再起動してもいいコンテナを作る Point4)独立したアプリケーションにする TIP:複数のプロセスを実行したい場合もある TIP:環境変数を積極的に使う Point5)フォアグラウンドで実行する 終わりに まとめ 感想 告知 はじ
前回のエントリーでは、Dev Containersの動作原理を理解したのでそれにあわせたPython環境を作っていきます。 ベースの環境まずリポジトリのフォルダを作ります。python-devとします。 ここをVSCodeで開き、Dev Containersの設定をしていきます。左下のリモートのボタンを押して Add Dev Container Configuration Files… を選択します。 基本のPython3を選びます。公式を選んでおくのが吉。オプションでPythonバージョンを選びます。Apple Silliconは-busterついているのを選べって言ってますね。半年前にスクリーンショットを撮ったときは3.11までしかありませんでしたが、今は3.12も選べます。 Pythonのイメージをインストールすると、有名どころのツールはすでにインストール済みとなっていますこの辺りは
最近実際に開発現場にコンテナを導入してきた経験から、公式ドキュメントに記載されているベストプラクティスに実際どうなんだということを言ってみようと思います。公式に書いてあることを間違ってると指摘という意図はありません 発言は個人の見解に基づくものであり、所属組織を代表するものではありません。 2023/12/3更新: 燃えかけてるのでタイトルを変えました。 補足: こちらの環境は下記を想定しています。 Java CICD/本番環境イントラネット内に整備 WF開発 マルチステージ・ビルドを使う マルチステージビルドの目的 公式ドキュメントには、下記のように記載があります。 マルチステージ・ビルド は、中間レイヤとイメージの数を減らすのに苦労しなくても、最終イメージの容量を大幅に減少できます。 つまり、最終イメージの容量を減らすことが目的であって、その一つの手段としてマルチステージビルドを進めて
やあ!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のホットリロードにつ
昔にも Dev Container を利用して Azure Functions の開発環境を構築する方法を書いたのですが、その後 Dev Container の機能強化と Azure Functions のアップデートによってベストプラクティスが変わってきたので、現時点でのベストプラクティスを確認しておきました。 Windows 環境であれば Visual Studio 2022 を利用しておけば Azure Functions + C# の開発環境は一発で構築できますが、それ以外の言語で特に Python の場合は Dev Container を利用した方が良いケースが多いです。最近では Visual Studio Code を使う人も増えていますし、Dev Container を用意しておくと最悪でも GitHub Codespaces 上でブラウザベースの開発が出来るので便利になりま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く