Dockerの.env、置いただけじゃ動かない!?環境変数の読み込ませ方備忘録
完全にやらかしました。 Dockerを使っているとき、「.envファイルに環境変数情報書いたし、同じ階層に置いたからこれでコンテナ内でも読み込めるっしょ!」と余裕をぶっこいていたら、全然読み込まれていませんでした。 というわけで、初歩的すぎて逆にハマる「Docker Composeでの環境変数の扱い」について、自分用の備忘録として残しておきます。 そもそも何が起きていたのか 「.envファイルは、…
完全にやらかしました。 Dockerを使っているとき、「.envファイルに環境変数情報書いたし、同じ階層に置いたからこれでコンテナ内でも読み込めるっしょ!」と余裕をぶっこいていたら、全然読み込まれていませんでした。 というわけで、初歩的すぎて逆にハマる「Docker Composeでの環境変数の扱い」について、自分用の備忘録として残しておきます。 そもそも何が起きていたのか 「.envファイルは、…
最近、PCをSnapdragon搭載のWindows機に買い替えて個人開発をしていたんですが、普通に使っているつもりでも「あれ?なんか挙動がおかしいな」とか「起動しないな」と感じることがあり、今後もARMアーキテクチャのマシンで開発を行う機会も増えてくると思うので、書き残しておきます。 明示的に指定しないとうまく動かないことがある 結論から言うと、Dockerイメージを使用するときに、明確にArm…
最近、PCをSnapdragon搭載のマシンに変更しました。 従来のインテルなどのCPU(x64)とは少し勝手が違うため、自分用の備忘録として、「ここだけは気をつけるべき」というポイントをまとめます。 Docker Desktop は「Arm版」が必須 Docker Desktopなんですが、いつもの感覚でMicrosoft Storeから取得したり、適当なインストーラーを使うと起動しません。 S…
「OpenSearch、ちょっと触ってみたいな」と思ったとき、環境構築でつまずくのはもったいない。 自分自身も最近、業務で使用する必要が出てきました。 今回は、docker-compose を使って、コマンド一つでOpenSearchとOpenSearch Dashboardsの環境をサクッと構築する手順を備忘として残しておきます。 使用しているファイルなどはこちらで確認できます。 1. dock…
基本的なmysqlの環境構築については、下記を参照。 https://tech.tokiraku.com/archives/37 テンプレート 初期稼働時のSQLを実行するためには、エンドポイントを指定する必要があるらしい。 エンドポイントの名称は docker-entrypoint-initdb.d 。 下記は、それを含んだテンプレートになる。 version: '3' serv…
基本的なmysqlの環境構築については、下記を参照。 https://tech.tokiraku.com/archives/37 テンプレート コンフィグファイルを置くには、コンフィグファイルの場所を docker-compose.yml で指定する。 下記は指定したテンプレート。 version: '3' services: # MySQL db: image: mysql:5.…
Djangoで用意されているコードテストの方法。 コードの準備 任意の場所にテスト用のディレクトリを作成し、初期化用のファイルを作成する。作成するファイルの中身は空でよい。 __init__.py このファイルがないと、テストが実行されない。 テストコードを記述するファイル。 接頭辞に「test_」を入れたファイルを作成する。接頭辞がないと、テストの対象とは認識されない。 test_[..…
setting.pyへの設定追加 Djangoの setting.py に下記のコードを設定する。※CACHESは初期状態から存在していることがあるので、ある場合には上書きする。 # redis CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCAT…
アプリケーションなどで、開発環境や本番環境で、設定情報が変更されるようなものは、ハードコードしたくないので、外部から参照できる設定ファイルにしておきたい。その時に、Dockerの環境変数として設定できると嬉しい。 Dockerの環境変数設定 docker-compose.xml のプロパティとして、 env_file がある。ここに、環境変数設定をおこなうことが可能となる。 <例>: env…
Docker上で、Djangoプロジェクトを実行する際、 docker-compose.yaml にコマンドを記載する方法もあるが、その方法だと、不都合が生じる場合がある。 その不都合とは、awsなどの実稼働環境に載せた場合に、コンテナ定義がdocker-composeではなくなってしまうため、コンテナの起動と同時にDjangoプロジェクトが起動しない。 そのため、シェルプログラムなどに実行時のコ…
docker-composeファイルのテンプレート version: '3' services: app: build: . volumes: - .:/app ports: - 9000:8080 networks: - external.group networks: external.group: external: true Dockerfileのテンプレート FROM p…
docker-composeファイルのテンプレート version: '3' services: app: build: . volumes: - .:/code ports: - '3000:3000' networks: - external.group networks: external.group: external: true Dockerfileのテン…