2016-04-24 7 views
0

プロダクションサーバーでプロジェクトをリリースするのが好きではありません。私はちょうど十分な経験がないかもしれませんが、誰も私に正しい方法でこれを行う方法を教えてくれませんでした。リリースサーバからアプリをデプロイ

今のところ、私はスカラ(スプレーの上に)でいくつかのレポを持っています。私はローカルマシン上でこのプロジェクトをビルドして実行するためのすべてを持っています(もちろん、それらを開発します)。 gitから同期してビルドして実行するために、私のプロダクションサーバーにインストールされたジェンキン。それは今のところ動作しますが、私はそれが好きではありません。なぜなら私のプロジェクトを実行したいすべてのマシンにジェンキンスをインストールする必要があるからです。私のプロジェクトをカフェの友達に見せたいのですが?

私はアイデアを持ってきました。アプリをビルドする前にテストを実行したら、ポータブルビルド(sbtネイティブパッケージャでe.q.)を行い、リモートサーバー "リリースサーバー"に保存してください。そのサーバーは、これらのアプリケーションを起動できる状態に保ちます。ドッキングウィンドウコンテナ内部

  1. ダウンロードして実行プロジェクト:

    は、その後私は私がしたい本番サーバー、解放サーバーから実行可能ファイルをダウンロードし、将来的には、機械

    に私のプロジェクトを実行する実行bashスクリプトに行きます。

  2. フロントエンド用の静的ファイルを提供する準備ができています。私はネクサス(http://www.sonatype.org/nexus/)について聞いた静的ファイル

とのnginxと連動ボリュームとドッキングウィンドウ コンテナを実行し、そのアーティストはように、彼らの曲を保存するために使用した画像。私は鉱山のようなアイデアを公開するオープンソースプロジェクトがあるはずだと信じています

何か助けていただきありがとうございます!

答えて

1

私の意見では、デプロイメントを実行するたびにソフトウェアをビルドすることが一般的なパターンです。バイナリリポジトリマネージャを導入することで、ビルドのプロセスをデプロイメントのプロセスから切り離すことをお勧めします。そのような例では、ネクサス)。

  • Binary repository manager
  • How can I automatically deploy a war from Nexus to Tomcat?
  • あなたはミニリリースとして成功するたびにビルドを扱うことができるようにのみ成功し、リポジトリにプッシュされますビルドテスト

  • Best Practice - Using a Repository Manager
    • 。この副産物は、プロダクションサーバーにすべてのビルドソフトウェア(Jenkins、ANT、Mavenなど)があらかじめインストールされている必要はないということです。

      NexusArtifactoryのような現代のリポジトリマネージャもDockerレジストリをサポートするようになりました。これにより、Dockerイメージの展開にも使用できるようになりました。

      更新

      関連シェフの質問、(瓶のような)中間のバイナリファイルが存在しない技術。この場合、ソフトウェアはまだリポジトリに格納されたtarディストリビューションを作成することによって "解放"されます。

      chef cookbook delivery - chef server vs. artifactory + berkshelf

    関連する問題