1.痛みが解決することを指します
1.バックエンド開発環境を構築する必要はありません。
2。開発環境の変更では、同期の更新にミラーを変更するだけです。
3. EclipseなどのIDEツールは必要ありません。
4.開発プロジェクトの切り替え
2。ソリューション
Dockerを使用してUbuntu画像を起動し、コンテナ内のプロジェクトに必要な開発環境を構築し、ローカルコードをコンテナにマウントし、マウントボリュームを使用してコンテナ内の環境を使用してコードをコンパイルして実行し、ホストはDockerによって露出したポートを介してコンテナ内のサービスにアクセスして、フロントエンド開発マシンがDockerを展開する必要があるようにします。
3。Dockerについて
Dockerを理解してください
この記事では、Dockerの知識を詳細に説明するつもりはありません。関連する記事がたくさんあります。興味があれば、この本を読むことができます。私は、Dockerを使用するためのこのツールの開発に限定されています。間違ったことがある場合は、指摘してください。
アクセル
Daocloudアクセラレータ
4.環境を構築します
Dockerをダウンロードしてインストールした後、開始できます。以下で話しているのはJavaですが、他の環境にも同じことが当てはまります。
Ubuntu画像を取得します。
Docker Pull Ubuntu
完了したら、 docker imagesを実行すると、新しく更新された画像が表示されます。
コンテナを入力します
docker run -it ubuntu
5.ソフトウェアをインストールし、環境変数を構成します
最初の更新apt-get
Apt-Getアップデート
次に、 apt-get install *を使用して、必要なソフトウェアをインストールできます。そうでない場合は、インストールパッケージをダウンロードして、自分でインストールしてください。同時に、環境変数を構成します。ここでは詳しく説明しません。
vi。サービスを開始します
Tomcatディレクトリを入力し、サービスを開始し、ブラウザで0.0.0.0:8080を開きます。何も間違っていない場合、サーバーにアクセスできないことがわかります。これは、私たちが始めたばかりのサービスがDockerにあるためです。いくつかの操作を行わなければ、Docker内のサービスにアクセスすることはできません。
それでは、最初にコンテナを終了しましょう
出口
終了した後、 docker ps -aを実行すると、今私たちが今私たちがまだそこにあることがわかります。 Dockerに慣れていないほとんどの人は、この間違いを犯し、容器を出た後に容器が破壊されると考えますが、実際にはそうではありません。
このコンテナをもう一度入力したい場合は、次のコマンドを実行できます。独自のコンテナIDをコピーしてください。
docker exec -itコンテナIDバッシュ
コンテナはまだ実行されていますが、持続していません。それが起こらないようにするために、コンテナ内の内容を変更した後、できるだけ早く持続します。
DockerコミットコンテナID Java
このコマンドは、Javaと呼ばれるコンテナを新しい画像に維持することを意味します。
この新しく作成された画像を開始します。
docker run -it -p 8080:8080 java
スタートアップコマンドの変更に注意してください。追加の-pコマンドがあります。このコマンドは、コンテナ内の8080ポートをホストに公開することを意味します。
もう一度0.0.0.0:8080をご覧ください。小さな猫が見えます。とてもかわいいです。
コンテナが今でも記憶を占めていた場合はどうすればよいですか?彼を殺す。
Docker RMコンテナID
最初のステップが完了し、次にコードを統合します。
7。統合コード
私たちが始めたばかりのコンテナは完全に独立したブラックボックスであり、コードがどこにあるかわからないため、ホストとコンテナがディレクトリを共有できるように、Dockerのマウントボリュームを使用する必要があります。
申し訳ありませんが、再び始めたばかりのコンテナを殺すつもりです。
docker run -it -v/users/name/web:/opt/root -p 8080:8080 java
スタートアップコマンドが新しいメンバー-Vを追加しました。このコマンドの意味は、ユーザーのルートディレクトリの下にWebディレクトリを /opt /rootディレクトリのコンテナに吊るすことです。
ディレクトリを入力した後、長年眠っていたメアリースーが電話を待っているように、Webディレクトリ内のファイルが静かに内側にあることがわかります。
呼び出しを開始します。
MVNクリーンインストール-u -plocal -dskiptests
しばらくすると、パッケージを成功させるためのプロンプトが表示されます。戦争パッケージをTomcat WebAppsディレクトリにコピーすると、プロジェクトにアクセスできます。
この時点で、私たちのプロジェクトはついに実行を開始しましたが、いくつかの問題があります。
1。毎回、このような長いコマンドを実行する必要がありますか?とても面倒です。
2。コードを変更するたびに、再パッケージ化する必要があります。これには長い時間がかかります。
3.スタートアップログを読む方法は?エラーを報告した場合はどうすればよいですか?
4.サービスを再起動せずにフロントエンドテンプレートファイルを変更する方法は?
これらの問題に基づいて、それらを解決するためにスクリプトを書く必要があります。
8。シェルスクリプト
スクリプトは次の指示を提供します
-yアップデートMaven Package-Compile-Package-Release-Start Tomcat
-pコンパイルパッケージリリーススタートトムキャット
-rトムキャットを再起動します
-c javaファイルを再コンパイル - リリース-Tomcatを起動します
-Wは、VMファイルに耳を傾け、デフォルトの5S同期を1回表示します
-l Tomcatログを表示します
-hヘルプ
#必要な変数####################################################################################################################変更が変更されました############################################################################## ######################################################################## ############################################################################## ######################################################################## ############################################################################## ######################################################################## ##############################################################################プロジェクトスタートアップアドレスtom_root = "$ {tom_url}/webapps"#ファイルリスニングインターバル、ユニットwt = 5#コピーvmwc_vm = "src/main/web-inf/tpl/usr/share/share/share/share/share/shoar /usr/share/tomcat7/webapps/root/web -inf/"#general method##wuse new package function newwar(){#delete old package rm -rf $ {tom_root}/*#move war package mv $ {war_url} $ {tom_root}/root.war} #サービス$を開始$ {tom_url} /bin/startup.sh Newwar Restart ;; 「P」)エコー「再パッケージ」MVNクリーンパッケージ-P $ {dev} -dskiptests newwar Restart ;; "r")echo "再起動tomcat"再起動;; "c")echo "サービスを再コンパイルして再起動します" mvn cleanコンパイル-p $ {dev} -dskiptests cp -r $ {wc_java}再起動;; "w")echo "vmファイルを聞き始めます"#vm watch -n $ {wt} cp -r $ {wc_vm} ;; "l")echo "ログイン" "h")echo "-Y更新Mavenパッケージパッケージパッケージリリーススタートワンストップサービス「ECHO」-Pコンパイルとパッケージリリースは、ワンストップサービス「ECHO」-R RESTART TOMCAT「ECHO」-C REJAVAファイルと再起動サービス「ECHO」-Wをリッスンします。 ;; ESAC 9。チームに宣伝します
上記の3つのステップの後、私たちのツールは構築されましたが、他の人はどのようにそれらを使用できますか?
Dockerはクラウドサービスを提供します。画像が十分に小さい場合は、画像をクラウドに押して他の人をダウンロードして実行できますが、画像は1Gを超えています。 。 。したがって、この方法は使用できません。
docker save java -o ./java.tar
上記のコマンドを使用して、画像をローカルファイルjava.tarに保持し、他の手段で他のクラスメートのマシンに転送します。数分のものを使用しています。
docker load -i java.tar
他の学生はこのコマンドを使用して、私たちの画像を彼のDockerにロードできます。
次に、シェルスクリプトをプロジェクトルートディレクトリに統合すると、喜んで使用できます。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容があなたの研究や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。