auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Docker環境でPython実行時に.envの環境変数を引数を渡す方法

auです。

DockerでPython環境作り、.envで環境変数を管理しています。

そのおかげもあり、Python実行時に引数で渡すのが簡単になったのでやり方載せておこうと思います。

やり方

今回はDiscordのWebhookを設定しています。そのためにはURLを設定しなければならないのですが、Gitなどにはあげてはいけないものになっています。

# .env

# discord_bot(DiscordのWebhookURLで置き換える)
discord_web_hook_url=https://discordapp.com/api/webhooks/xxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

コマンド部分のみ抜粋。Python環境は他サイトを参考にしてください。

# docker-compose.yml
command: python discord.py ${discord_web_hook_url}
import sys
from discord_webhook import DiscordWebhook # Dockerfileでインストールが必要

args = sys.argv
DISCORD_WEBHOOK_URL=args[1]

webhook = DiscordWebhook(url=DISCORD_WEBHOOK_URL, content='Hello Wolrd')
response = webhook.execute()

外部ライブラリを使わずに短い行数で実装することができました。

普通なら

python discord.py 
https://discordapp.com/api/webhooks/xxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

と、長いことになってしまいますが、Docker環境なら短く、可読性を高くすることが可能です。