将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察
The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...
私たちが準備したアプリケーションが大幅に拡張されたことに気づいて以来、私はその起動プロセスの自動化のためのまったく新しい方法を見つけることにしました。新機能を単独で有効化できるソリューションを見つけることが重要でした。
よりシンプルなプロセス自動化の方法を発見することは、私の仕事だけでなく、私全体の仕事を大きく改善することになるだろう。 チーム.なぜDockerを使わないのか?
準備段階では、フロントエンド・アプリケーション用とAPI用の2つのセットアップを作成した。以下は、開発プロセスで学んだことのプレゼンテーションだ。
コンテナ内にクローンリポジトリを持ちたいので、DockerfileのADDコマンドでsshキーを追加した:
ADD ~/.ssh/testowy
ファイルが見つからない。なぜだ?
次のようなフォルダ構造になっていると仮定しよう:
docker/
|-- stuff/
|-- test.txt
|-- Dockerfile
サーバ
|-- データ
|-- setup.yml
コマンド実行 ビルド
での ログインキュー
フォルダーに追加できるのは、ローカル・フォルダーとそのローカル・サブフォルダー(例えばstuff)のファイルだけです。
を追加したい場合は サーバー
フォルダーに移動すると、メッセージが表示されます:"コンテキストを準備できません"
映像が出来上がるのにどうしてこんなに時間がかかるのか不思議に思ったことはありませんか?もしかしたら .dockerignore
画像に不要なファイルを無視します。そのため .git
フォルダは、一時ファイルと同様に自動的に削除されるはずです。
Dockerは各行をDockerfileとして保存し、ビルド後は各行をレイヤーとして保存する。特定のコマンドの順番を頻繁に変えないことが非常に重要である。
ubuntuから
RUN apt-get install -y software-properties-common パイソン
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD["/usr/bin/node","/var/www/app.js"]を実行する。
例えば、Dockerfileの最後の行を変更すると、最後の行が変更される間、前の行はすべてキャッシュからダウンロードされます。4行目を置き換えると、4行目から最後までのすべての行が変更されます。このため、変更されないコマンドはファイルの先頭に置く価値がある。
ある画像が何に使われるのかを考えてみる価値はある。あるサービスを立ち上げるために必要であれば コード コンテンツを画像に直接貼り付ける:
COPY。/ワークディレクトリ
残念なことに、これではファイルを編集することができず、コードを編集するたびにイメージを構築し直さなければならない。
MacOSを使っていて、ビルドしたイメージを開発に使いたい場合は、少し違った方法でこの問題に取り組まなければならない。ボリュームを使用する場合、これは非常に遅いソリューションであることを覚悟しなければならない(例えば、ホストからコンテナへのファイルのコピーは4.5MB/sの速度で行われ、コンテナ内の内部コピーは10〜20倍の速度で行われる)。幸運なことに リンクMac版Dockerの開発を担当するチームにとって、この問題はすでに知られており、その解決は重要な課題となっている。
このような状況で、開発にDockerを使うにはどうすればいいのだろうか?
外部サービス、例えばRedis/PSQL/Elasticsearchに使うこともできるし、rsyncを提供する準備のできたソリューションを使うこともできる: https://github.com/brikis98/docker-osx-dev
大きなチームで新機能をテストしたい場合、dockerは理想的なツールになるだろう!とはいえ、サーバーの本番稼動に使うか?まだ完全には納得していませんが...。
さらに、いくつかの優れた記事を推薦する: