DockerでNGINXを動かすとClientIPが取れない
SvelteKitアプリでアクセス元IPアドレスを見て処理を分けたかった。
ローカル環境ではHandle
でevent.getClientAddress()
したら取れていた。
SvelteKitはログが寂しいので、手前にNGINXを置いてアクセスログを詳細にとれるようにしてみた。
ローカルにNGINXインストールするのはちょっとあれだったので、docker composeで組んだ。
Read morePOSTS
SvelteKitアプリでアクセス元IPアドレスを見て処理を分けたかった。
ローカル環境ではHandle
でevent.getClientAddress()
したら取れていた。
SvelteKitはログが寂しいので、手前にNGINXを置いてアクセスログを詳細にとれるようにしてみた。
ローカルにNGINXインストールするのはちょっとあれだったので、docker composeで組んだ。
Read moreWEB+DB PRESS Vol.135 | Gihyo Digital Publishingを読んでいて、docker composeの設定例がcompose.yamlになっているのが気になってググったら、compose V2から推奨が変わったらしい。
時代に乗り遅れていた。
参考:
Docker で Spring Boot - 公式サンプルコードを見ながらやってみた。
ローカルにJDKが入っていなかったので、Dockerでビルドしてみたところ、うまく動かず。。
リンクされているSpring Initializrで、Javaが11を選択されていたので、Dockerイメージも11を使ったのだが、Spring Initializrとイメージを17にしたら、通った。
英語版のリンクは何もオプションパラメータがついていなくて最初から17が選択されていたので、日本語版の変更が追いついていないだけなのかもしれない。
Dockerの学習方法について、ChatGPTに聞いてみた。
おおむね自分の認識と合った回答だった。
もう一度やったら違う回答が出てきそうだったけど、エラーになってしまった。
大人気で混雑してるっぽい。
Dockerのおさらいをするために、Software Design 2022年11月号|技術評論社の特集を読んだ。
基本的なコンテナの仕組みへの理解が深まった気がする。
個人的には、以前ほど何でもコンテナ化したらいいじゃんって感じではなくなって、選択肢の一つとして存在している感じ。
まぁDocker使ってもMacとWindowsで挙動が違ったり、ラズパイ用のイメージがなかったりすることに疲れたというのもある。
Read moreGitHub Codespacesが使えるようになるのを待つ間、ラズパイで何とかならないか試してみた。
VS Codeからリモート接続して、Dockerインストールするところまでは順調だったけれど、docker compose upしたところでエラー。
MySQLのコンテナイメージが提供されていないようだ。 意外だった。
mysql Tags | Docker Hubにはlinux/arm64/v8
があるけれど、ラズパイはv7
らしい。
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 moreWSL2が不安定なので、開発環境を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
をつけたら動いた。
WSL2の不調の影響か、Docker Desktopも応答がなくなることが多い。
せっかくのノートPCなのに、毎回シャットダウンする運用はしたくないなぁ。
Windows11の新しいの入れたら改善したりするのかしら。
docker compose up -d
で複数コンテナを動かしているときに、その中の特定のコンテナのイメージを更新して再起動したい。
できればその他のコンテナは再起動したくない。
そんなのdocker compose stop hogehoge
してdocker compose start hogehoge
したらいいと思ってた。
ログ的には再起動されるけれども、コンテナイメージは古いままだった。
Read more