2016-12-24 15 views
9

私のチームと私はDockerを購入しました。展開とテストには素晴らしい方法です。私の本当の疑問は、特にPythonアプリケーションを書くことのような偉大な開発者の経験をセットアップする方法ですが、この問題はnodejs、Javaなどに一般化することができます。Docker開発環境のリッチエディタ

問題:Pythonアプリケーションを書くとき、 linting/autocomplete機能を提供していますが、Atom、VSCode、PyCharmのような、本当に良いエディタがいくつかありますが、Pythonをローカルディスクにインストールしたいと思っています。 Dockerの最大の利点は、コア言語とプロジェクトライブラリのすべてがすべてコンテナ内にあることです。そのため、開発のためにホストマシン上のすべてを再現することは苦痛です。

私はPyCharmプロがDockerとdocker-composeをサポートしていることを知っていますが、私はそれが非常に鈍いことを発見し、多くのテスト実行機能が破棄されました。その上、私は本当に、チームがdev setupを共有できるように、バージョン管理にコミットすることができ、自分のシステムのすべてのステップを繰り返す必要はないと思っています。私が持っていた

いくつかのアイデアがあった。

  1. がコンテナにhttps://c9.io/よう
  2. 使用して、そのようなブラウザベースのエディタを転送X11をサイドカードッカーコンテナ内(アトムのような)エディタをインストールして使用する - これを最も有望なようです
  3. 自動コンプリート/リンキングなどを扱うことができるdevコンテナにエージェントをインストールし、ローカルに実行されているエディタからそのエージェントに接続してください - これは最善の解決策だと思いますが、存在しません。

ボリュームをマウントしてテキストを編集するだけでなく、より生産的な開発環境を構築してくれた人は誰ですか?

+1

理由だけではなく、ローカルエディタを実行し、A内のファイルを保存しません変更が反映されるように共有ボリュームこれはバゲントと同じ種類のことです。 –

+0

@MattSchuchardはメインソースファイルで動作することを確認しています。私は、オートコンプリート/イントロスペクションを使用して、ドッキング状態のコンテナにあり、ボリュームとしてマウントされていないライブラリファイルについて知っています。 –

+0

コンテナの初期化中にライブラリファイルが自動的にプロビジョニングされませんか?これが本当に揮発性の開発環境でない限り、後で手動で変更する必要はないと思います。 –

答えて

13

Doherer-ContainerへのSSH-Accessを使用して、IntelliJ(Pycharm)のような適切なIDEを使用する必要があります(事前にインストールされたopensshサーバとあらかじめ設定された承認済みファイルで開発者用のssh- )。 プロジェクトファイルにこのSDK情報を共有することができます。すべての開発者が持っています。

1)これにより、実行時に使用可能な/インストールされているすべてのPythonライブラリがIDEによって認識されます。また、同時にリモートで適切にデバッグすることも可能になります

2)これにより、あなたが考えることができるすべての機能を備えた適切なIDEが手元に確保されます。そして、ブラウザベースのIDEのほとんどがPycharmに追いつくことはほとんどありません。

もちろん、コメントに記載されているように、コードをコンテナに共有する必要があります。 linuxでは、ローカルのsrcフォルダからコンテナへのホストボリュームマウントを明示的に使用します。 OSX上で

、あなたはパフォーマンスの問題に実行され、http://docker-sync.ioのようなものを使用することがあります(私はバイアスされています - 他の同様のツールの多くもある)

+0

ありがとう! @Eugen Mayer – aserww106

+0

これはちょうど私が必要と思うように聞こえるが、私はあなたが "リモートPython SDK"の意味を理解していない。オンラインで調べると、PyCharmのドキュメントがこのような設定をしていることがわかりましたが、実際に動作させることはできませんでした。 :( – CoreDumpError

+0

あなたはIDEからトンネルできるように、アプリケーションのDockerfileをsshとopensshサーバを含むように変更することをお勧めしますか? – Pitt