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環境なら短く、可読性を高くすることが可能です。