Skip to content

Docker

DockerでNGINXを動かすとClientIPが取れない

SvelteKitアプリでアクセス元IPアドレスを見て処理を分けたかった。

ローカル環境ではHandleevent.getClientAddress()したら取れていた。

SvelteKitはログが寂しいので、手前にNGINXを置いてアクセスログを詳細にとれるようにしてみた。

ローカルにNGINXインストールするのはちょっとあれだったので、docker composeで組んだ。

Read more

DockerでSpring Boot

Docker で Spring Boot - 公式サンプルコードを見ながらやってみた。

ローカルにJDKが入っていなかったので、Dockerでビルドしてみたところ、うまく動かず。。

リンクされているSpring Initializrで、Javaが11を選択されていたので、Dockerイメージも11を使ったのだが、Spring Initializrとイメージを17にしたら、通った。 英語版のリンクは何もオプションパラメータがついていなくて最初から17が選択されていたので、日本語版の変更が追いついていないだけなのかもしれない。

Read more

Docker x ChatGPT

Dockerの学習方法について、ChatGPTに聞いてみた。

おおむね自分の認識と合った回答だった。

もう一度やったら違う回答が出てきそうだったけど、エラーになってしまった。

大人気で混雑してるっぽい。

Docker再入門

Dockerのおさらいをするために、Software Design 2022年11月号|技術評論社の特集を読んだ。

基本的なコンテナの仕組みへの理解が深まった気がする。

個人的には、以前ほど何でもコンテナ化したらいいじゃんって感じではなくなって、選択肢の一つとして存在している感じ。

まぁDocker使ってもMacとWindowsで挙動が違ったり、ラズパイ用のイメージがなかったりすることに疲れたというのもある。

Read more

ラズパイでDockerでMySQL

GitHub Codespacesが使えるようになるのを待つ間、ラズパイで何とかならないか試してみた。

VS Codeからリモート接続して、Dockerインストールするところまでは順調だったけれど、docker compose upしたところでエラー。

MySQLのコンテナイメージが提供されていないようだ。 意外だった。

mysql Tags | Docker Hubにはlinux/arm64/v8があるけれど、ラズパイはv7らしい。

Read more

Dockerfileでブレース展開

golangのベースイメージにnodejsを入れたくて、 Step by step instructions to install node and npm using Linux binaries - DEV Community 👩‍💻👨‍💻 この手順見ながらやってみていたのだけれど、

RUN cp -r ./{lib,share,include,bin} /usr

でファイル未存在のエラーになってしまった。

RUN cp -r ./lib /usr
RUN cp -r ./share /usr
RUN cp -r ./include /usr
RUN cp -r ./bin /usr

とすると通るので、ファイルが存在しないわけではなく、ブレース展開ができていないらしい。

Read more

GitBashでDockerでMount

WSL2が不安定なので、開発環境をGitBash使うようにして、おおむね問題なかったのだが、Dockerでローカルをマウントして使うときに問題が。

OpenAPIのコード生成するときに

docker run --rm \
  -v ${PWD}:/local openapitools/openapi-generator-cli generate \
  -i /local/openapi.yml \
  -g go-server \
  --additional-properties=router=chi,featureCORS=true \
  -o /local/out

だと

[error] The spec file is not found: C:/Program Files/Git/local/openapi.yml
[error] Check the path of the OpenAPI spec and try again.

こんなエラーになる。

Mount volume doesn’t work on Windows 10 using git-bash · Issue #673 · docker-archive/toolboxを参考に、MSYS_NO_PATHCONV=1をつけたら動いた。

Read more

docker composeで特定コンテナの再起動

docker compose up -dで複数コンテナを動かしているときに、その中の特定のコンテナのイメージを更新して再起動したい。 できればその他のコンテナは再起動したくない。

そんなのdocker compose stop hogehogeしてdocker compose start hogehogeしたらいいと思ってた。

ログ的には再起動されるけれども、コンテナイメージは古いままだった。

Read more