web-dev-qa-db-ja.com

Docker開発環境のリッチエディター

私のチームと私はDockerを購入しました-導入とテストに最適です。私の本当の質問は、特にPythonアプリを書くことに関して、優れた開発者体験をセットアップする方法ですが、この質問はnodejs、Javaなどに一般化できます。

問題:Pythonアプリを書くとき、私はまともなリンティング/オートコンプリート機能が大好きです。これらを提供する本当に優れたエディター(Atom、VSCode、PyCharm)がいくつかありますが、ほとんどの場合Pythonローカルディスクにインストールします。Dockerの本当の利点は、すべてのコア言語とすべてのプロジェクトライブラリをすべてコンテナに含めることができるため、ホストマシンですべてを再現できることです。開発のためだけに苦痛です。

PyCharm proがDockerとdocker-composeをサポートしていることは知っていますが、かなり遅いため、多くのテスト実行機能が無効になっています。その上で、チームが開発者のセットアップを共有でき、ユーザーが自分のシステムのすべての手順を繰り返す必要がないように、バージョン管理にコミットできるものが本当に欲しいです。

私が持っていたいくつかのアイデアは:

  1. エディター(Atomなど)をサイドカーDockerコンテナーにインストールし、X11転送を使用する
  2. コンテナーで https://c9.io/ などのブラウザーベースのエディターを使用する-これは最も有望なようです
  3. オートコンプリート/リンティングなどを処理できる開発コンテナーにエージェントをインストールし、ローカルで実行しているエディターからそれに接続します-これは最良の解決策だと思いますが、今は実際には存在しないとも思います。

ボリュームをマウントしてテキストを編集するだけでなく、より生産的な開発環境を設定できる人はいますか?

20
Justin Harris

「高度な」IDE IntelliJ(Pycharm)のような)を使用し、remote Python SDK App-Docker-ContainerへのSSHアクセスを使用する(共有ssh-keyを使用して、openshshサーバーが事前にインストールされ、authorized_keysファイルが事前設定されているapp-containerに対して認証する)。プロジェクトファイルのこのSDK情報をすべての開発者と共有できるため、開発者はすぐにこの設定を行うことができます

1)これにより、IDEはすべてのpython libs/symbols available/installed in your docker-container in runtime。リモートで同時に適切にデバッグする

2)これにより、IDEが手元にあり、インスペクタ、3wayダフ、パス内検索などの重要な追加機能がたくさんあります。。ブラウザベースのIDEはほとんどありませんこの時点でPycharmに追いつく

もちろん、すでにコメントで述べたように、コードをコンテナにマウントすることも必要です。 Linuxでは、ローカルのsrcフォルダーからコンテナーにHost-volume-mountsを明示的に使用します。

OSXでは、ホストマウントを使用するとパフォーマンスの問題が発生します。あなたは http://docker-sync.io のようなものを使うかもしれません(私は偏見があります-他にも多くの同様のツールがあります)

16
Eugen Mayer