PycharmでDockerのオプションを設定する方法

Pycharm-docker-option.png

こんばんはエンジニアの眠れない夜です。

PycharmでPythonを走らせるときにインタープリターのDockerオプションってどうやって設定するんだろう?

と思ったことはありませんか?

Pycharmの Run Configuration を見てもどこに設定すればいいんだ??って私はなっていました。

Pycharmの公式ドキュメントを見てもいまいち欲しい情報が見つからないし…  そして、ググってみてもPycharmの設定方法について書いているブログってあんまり見つからないし…

ということで、今日はそんなPycharmでのDockerのオプション設定の方法をお伝えします。

※ 間違っているところなどありましたらご指摘くださいm(_ _)m

Dockerオプションの設定方法

まずはPycharmの画面上にあるメニューからEdit Configurations…を開きます。

Pycharm設定

設定を変更したいPythonファイルを画面左のメニューから選択します。
続いて画面右下の方にあるDocker container settings と言うところにあるフォルダーのアイコンをクリックします。
ここからDockerのオプション設定ができます。

Pycharm_Docker_option

この画面からDocker起動時のポートの設定やボリュームの共有設定ができます。 ボリュームの設定は初めからされていることに気が付きました。だから プログラムに変更加えでPycharmで実行すると、ビルドし直さなくても変更内容が反映されているのですね。

ポートの設定もここからできるのを知らなかったので、今までポートを設定したいときはターミナルからDocker runを実行していました💦

pycharm-docker-settings.png

そして、1番下の Run options はポートやボリューム以外の設定ができます。 ここにネットワークの設定を追加することで既にホストと共有しているデータベースに接続ができます。

例えば、私の環境では my_network というネットワークにデータベースが接続されているので、上記の設定のように –net=my_network を追加すると、コンテナからデータベースに接続できるようになります。

今まではこの設定を 知らなかったのでこんな感じでdocker-composeを使ってプログラムを書いていました。

3ヶ月ほど前まではこれでも問題なかったのですが、最近Dockerのバグ?でPycharmからDocker Composeの再起動ができないと言う問題が発生しています。

そのため、プログラムに変更加えて Dockerの再起動が必要になった時は、うまく停止せずにターミナルで docker-compose down を叩かなければならず、非常にめんどくさい…という問題があります。インタープリターに docker-compose をつわ無ければこの問題は発生しないので快適です。

また、Docker Composeは再起動してプログラムを実行するまでに5秒〜20秒程度時間がかります。しかし、Docker単体で動かすことにより1~2秒程度でプログラムの実行が始まります。

※ Djangoの場合は10秒程度かかります。

全てのプログラムに適応する方法

実行ファイル1つ1つに設定するのは面倒なので、画面左下の Edit configuration templates… からDockerオプションの設定を行います。そうすることで、プロジェクト内で新たに実行されるPythonプログラムは自動でDockerオプションが設定された状態で実行できます。

docker setting template

既に、作成されているPythonプログラムの実行設定を変更するのが面倒な時は一旦全て削除してしまえば、次回実行時に自動で設定されるので1つ1つ設定を変えに行く必要はありません。

Dockerを直接利用するデメリット

1週間ほどこの設定で使っていてDjangoのプロジェクトでフロントエンドの開発している時に気がついたのですが、テンプレートファイルのデバッグで、ブレークポイントで止まらない!(TдT)

docker-compose より使い勝手のいい環境だと思ったのですが、Djangoでフロントエンドを触る時は致命的です(>_<)!! Djangoを利用するプロジェクトでは docker-compose を利用したほうが良さそうです。

まとめ

  • Pycharm のインタープリターでDockerオプションを設定する時はRun Configurationの下の方にあるDocker optionsを触る。
  • ターミナルで事項する時と同じようにDockerコマンドを実行できる。
  • DockerをインタープリターにすることでDocker Composeのバグを回避できる
  • Dockerを直接実行できるのでプログラム開始までの待ち時間が短くなる。
  • テンプレートの設定を変更すれば同じプロジェクト内でDockerオプションの設定はしなくて良くなる。
  • Djangoのテンプレートファイルでデバッグができない。

Pycharm でDockerの設定ができると小さなプロジェクトではいいことがたくさんあるので、用途に合わせてぜひお試しください!

あなたのプログラミング環境が少しでも快適になりますように(^^)v

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください