動かざることバグの如し

近づきたいよ 君の理想に

docker

docker compose downをすぐに終了させる方法

結論 docker compose down で速攻で終了させたいなら version: "3" services: app: image: ubuntu stop_grace_period: 0s そもそもdocker compose downはなにしているのか docker-compose.ymlのstop_grace_periodとはdocker-composeは、複数のコンテナを定義…

ターミナルからDockerイメージのタグを検索するシェルスクリプト作った

やりたいこと 公式のDocker Hubで指定したタグを検索するのがダルい UIがクソ そもそもターミナルで完結したい タグ一覧を取得するAPIがあるからそれを使ってシェルスクリプトを作成したい 成果物 ChatGPT様々 function search_docker_image_tag() { if [ -z…

DockerのPHPは結局どのphp.ini使えばいいんだ問題

環境 PHP 7.4 どのphp.ini使えばいいんだ問題 DockerのPHPでは/usr/local/etc/php/php.iniがルートのphp.iniになっている root@e2459ffbe39f:/var/www/html# php -i|grep php.ini Configuration File (php.ini) Path => /usr/local/etc/php が、肝心の/usr/l…

Dockerが勝手にiptablesを設定しないようにする

Dockerが勝手にiptablesを作成する apt install -y docker-ce でDockerをインストールすると自動的にiptablesが追加される。 通常 # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target pro…

UbuntuにnerdctlをインストールしてDockerコマンドっぽく使う

環境 Ubuntu 20.04 containerd v1.6.6 Dockerコマンドの代わりにnerdctlを使いたい 自宅サーバーにUbuntuを入れてKubernetesを構築しているのだが、現状Kubernetesとdocker-ceのパッケージの相性悪い。 いや、Kubernetesがすでにcontainerdに切り替えている…

macでlima使う

久々すぎて記事の書き方忘れたわ インストール 自力でインストールする方法もあるけどbrew使ったほうが1000倍早い brew install lima 起動してみる コマンドは大きく2つ limactl 仮想マシンの作成、削除とかの管理 lima 起動した仮想マシンの操作 まず…

GitHub ActionでGithub Container Registryにpushする

環境 2020-12-31現在 成果物 thr3a/imagemagick-docker docker pull ghcr.io/thr3a/imagick YAML .github/workflows/action.ymlを用意 name: Build and Publish Docker on: push: branches: - master jobs: build_and_push: runs-on: ubuntu-20.04 env: IMAG…

AWS ECRにDockerイメージをPrivateにPushする

ECRって馴染み無いからなんだろうけど、公式サイトが「Amazon ECR レジストリ」って謳ってるのなんかウケる 概要 FargateにデプロイするにあたってAWSにコンテナをPushする必要がでてきたのでメモ ちょうどタイムリーにPublic Registoryもリリースしてたしね…

docker内でcurlしたときにSSL certificate problemエラーになる問題

状況 debian系のdockerでhttpsのURLをcurlで叩くと以下のようなエラーになって死ぬ SSL certificate problem: unable to get local issuer certificate Dockerfileはこんな感じ FROM debian RUN apt-get update \ && apt-get install -y --no-install-recomm…

debパッケージ作成をDockerで行う

結論 わざわざdebianの環境手元で作れるかよってことでdockerに頼った。 以下のようにディレクトリを配置し、 $ tree mypackage mypackage ├── DEBIAN │ ├── control │ ├── postinst │ └── preinst └── (以下任意) 実行 docker run -v $(pwd):$(pwd) -w $(pw…

Dockerのphp-fpmをrootで実行させる方法

環境 php 7.4 概要 訳合ってdockerで動かすphp-fpmのコンテナ内のphp-fpmをrootで実行したいということになった。 が、セキュリティ上の理由かデフォルトではrootではなくwww-dataというユーザーで動作している root@43910975d907:~# ps aux USER PID %CPU %…

Docker実行時に「the input device is not a TTY」エラー

環境 Docker version 19.03.13, build 4484c46d9d docker-compose version 1.27.4, build 40524192 概要 いつものようにdocker-compose exec xxxしたら見慣れないエラーが。 the input device is not a TTY は???? 解決策 docker-compose実行時の場合 -T…

mitmproxyをDocker使って秒速で起動させる

mitmproxyとは HTTPS対応のプロキシサーバー 一言でプロキシサーバーといってもnginxやsquidなどと違って主に通信の傍受に使う これを公式が出しているdockerイメージで一発で起動させたい docker run --rm -it -v $(pwd)/data:/home/mitmproxy/.mitmproxy -…

Alpine Linuxで日本語の明朝体フォントを使えるようにする方法

環境 Docker Alpine Linux 3 やりたいこと Dockerで軽量イメージを作る上で欠かせないAlpine Linuxで日本語フォントを使う場合、実は RUN apk add font-ipa fontconfig && fc-cache -f を実行するだけで日本語は表示できる。が、今回は明朝体もきれいに表示…

runtime=nvidiaを有効してdocker buildする

環境 docker nvidia/cuda:10.0-runtime-ubuntu18.04 やりたいこと docker build時にも --runtime=nvidiaしたい!!!!!!! 周知の通り、nvidiaはDockerに対してランタイムという形でCUDA環境を提供している。つまり、nvidia-dockerをインストールすると、…

DockerでApache Benchをサクッと実行する

手元のMacでサクッとHTTPの負荷テストをやりたかったけど、Apache BenchがMacだと動かなかったのでDockerで動かしてみることにした。 環境 Apache Bench 2.4 まずはDockerfileを用意 すでにimagesを公開されている方もいたが、バージョンが古かったので自分…

Docker Composeの最新版のバージョンを取得する方法

概要 2019年3月28日現在、なぜかDocker Composeのダウンロードリンクにlatestのリンクがない。 よって最新版をインストールするにはhttps://docs.docker.com/compose/install/ の公式ドキュメントのリンクを見てやらなきゃいけないのだが、自動インストール…

Dockerhubへデプロイするコマンドメモ

docker build -t thr3a/mynginx . thr3a/mynginx=ローカルにあるimage名とする docker tag ローカルにあるimage名 ユーザ名/リポジトリ名:タグ docker push ユーザ名/リポジトリ名

dockerでsquidプロキシサーバーを構築する

dockerでsquidを動かしたいのでDockerfile作った thr3a/squid-docker-compose 使い方 git clone git clone https://github.com/thr3a/squid-docker-compose/tree/master で、実行するだけ cd squid-docker-compose docker-compose up あとは # squidのデフォ…

プライベートなDocker Hubを一発で構築する

memo 環境 docker version: "3.5" services: registry: image: registry:2.7.1 container_name: registry volumes: - ./images:/var/lib/registry ports: - 5000:5000 restart: always docker build . -t myimage docker run myimage docker tag myimage doc…

DockerでMecab&neologd辞書を一発で使う

最初は自分でビルドしてインストールして、、、と考えていたのだが、素晴らしいことにグノシーさんがImageをビルドして公開してくれているのでありがたく使う。 github.com 例えば適当にdocker-compose.ymlを用意して以下 version: "3.5" services: mecab: i…

DockerでNodejsとyarnをなるべくシンプルにインストール

環境 Docker 18 docker-compose 1.23 debian系 やりたいこと とあるDockerイメージにNodejsをインストールすることにした。普通ならapt-get install nodejsとパッケージ管理システム経由でインストールするのが定石だが、理由があってイメージサイズを小さく…

Docker&dnsmasqでローカルにオレオレDNSサーバーを構築する

Macで開発する際に/etc/hostsを書き換えて作業することが結構おおい。 が、そのたびにhosts書き換えるのもだるいし、/etc/hostsの悪いところはワイルドカードに対応していないところである。。 ってことで、今回はMacにDNSサーバーを入れてみることにした。…

dockerで特定のログをひたすらtailし続けるコンテナを作る

環境 docker-compose やりたいこと いや、大したことじゃないんだけど、docker logでは各プロセスの標準出力が流れる。で、自前のアプリケーションのlogを流したかった話 コード image: "alpine:3.8" command: /bin/sh -c "mkdir -p /app/rails && touch /ap…

Debian系でlibjpeg8-devが「404 not available」でインストール出来ない

環境 docker Debian Jessie 原因 ubuntuとパッケージ名が違う apt-get install libjpeg62-turbo-dev でおk 参考リンク libjpeg8-dev is not available on Debian Jessie · Issue #524 · Automattic/node-canvas

Dockerのphp-fpmでImageMagickを使う方法

やりたいこと PHPの公式ドキュメントを見て貰えればわかるように、PHPからImageMagickを通して多くの画像処理を行うことができる。が、当然サーバー上にImageMagickがインストールされてなければならない。 docker上で操作したいときに若干はハマったのでメ…

dockerでWineをインストールするときにライセンス確認画面から進めない問題

環境 Ubuntu 18.04 wine 1.6 症状 ubuntuのイメージを使ってdockerをbuildする。 RUN apt-get update RUN apt-get install wine1.6 xvfb -y みたいにwineインストールしようとすると、 (略) If you acquired this product in the United States, this EULA…

docker-composeでアスタリスク(*)を含むコマンドを実行したい

なんでできへんのや 環境 $docker -v Docker version 18.06.1-ce, build e68fc7a $docker-compose -v docker-compose version 1.22.0, build f46880f やりたいこと docker-composeが起動している上で以下のようにするとdocker内でコマンドを実行できる。 doc…