【Docker超入門 #8】本番環境に公開しよう
Summary
TLDRこのビデオでは、開発環境から本番環境へのDockerコンテナのデプロイプロセスについて詳しく説明しています。具体的には、ローカル環境でのDockerイメージの作成から、本番環境でのコンテナ起動までの手順を実際のコマンド操作を通じて解説しています。また、環境変数の設定やデータベースの接続情報の管理方法についても触れ、CI/CDの導入の重要性についても言及しています。このビデオは、Dockerを使ったアプリケーションのデプロイメントを学ぶ上で非常に有益です。
Takeaways
- 📌 ドッカーコンテナを本番環境で公開することで、ローカル環境と本番環境での開発効率を同じようにすることができる。
- 🛠️ 事前準備として、GitHubに登録し、Heroku CLIをインストールすることが必要である。
- 🔧 Herokuのアプリケーションを作成し、データベースなどのアドオンを追加する。
- 🔄 データベースの接続情報を環境変数に設定し、セキュリティを確保する。
- 📂 アプリケーションのソースコードをGitHubにプッシュする前に、本番環境に適したDockerファイルを修正する。
- 🚀 Dockerイメージをビルドし、Herokuのコンテナレジストリーにプッシュする。
- 🌐 Herokuでアプリケーションをリリースし、ブラウザで動作確認を行う。
- 🔧 問題が発生した場合は、Herokuのログを確認し、エラーを解決する。
- 🔄 データベースのマイグレーションを実行し、テーブルを作成または更新する。
- 🛠️ 简单なHTMLページを作成し、Herokuで動作確認する。
- 📈 CI/CDを導入することで、テストとデプロイを自動化し、開発効率を向上させる。
Q & A
ドッカーコンテナを公開する前にどのような事前準備が必要ですか?
-事前準備には、GitHubの登録、He6ディスクの設定、He6 CLIのインストール、He6アカウントの登録、そしてクレジットカードの情報を登録することが含まれます。
He6アプリケーションを作成する際に、どのようなアドオンを追加する必要がありますか?
-He6アプリケーションを作成する際には、MySQLなどのデータベースアドオンを追加する必要があります。無料プランでは利用できるのはClearDBです。
環境変数を設定する目的は何ですか?
-環境変数は、開発環境と本番環境で異なる設定を管理するために使用されます。これにより、データベースの接続情報やAPIキーなどの機密情報をソースコードに直接記述することを避け、セキュリティを確保します。
Dockerコンテナを本番環境で動かすために、何らかのスクリプトを追加する必要がある場合、どのようにすればいいですか?
-本番環境で特定の処理を実行する必要がある場合は、Dockerfile内でスクリプトを追加し、そのスクリプトを実行するためのコマンドを記述します。また、He6の環境変数を活用して、本番環境専用の設定を適用することもできます。
He6でアプリケーションを公開する際に、何らかのエラーが発生した場合、どうすればいいですか?
-エラーが発生した場合は、まずHe6のログを確認し、問題の原因を特定することが重要です。また、ローカル環境で問題を再現し、修正することができれば、再び本番環境にプッシュしてみることも有効です。
アプリケーションの開発中に、データベースマイグレーションが必要になる場合、どうすればいいですか?
-データベースマイグレーションが必要になった場合、まずHe6で提供されるマイグレーション実行コマンドを使用します。また、He6の環境変数を設定して、本番環境でのマイグレーション実行をスムーズに行うことができます。
本番環境でのアプリケーション運用において、CI/CDを導入することにどのようなメリットがありますか?
-CI/CDを導入することにより、自動化されたテストとデプロイが行えるようになります。これにより、開発効率の向上だけでなく、本番環境へのリリースが迅速かつ確実に行えるようになり、運用の効率化や信頼性の向上が期待できます。
He6アプリケーションのリリース_web是如何进行的?
-He6应用程序的发布_web是通过使用特定的命令,如'release web',在He6环境中进行的。这涉及到构建Docker镜像,将其推送到容器注册表,然后在He6环境中从该镜像创建并启动容器。
在本脚本中,如何解决Docker容器中缺少CSS文件的问题?
-在脚本中,通过检查Dockerfile和启动脚本(start.sh),确保在构建过程中正确地复制了所有必要的静态文件(如CSS文件)。此外,还可能需要检查He6环境中的资产编译和预处理设置,以确保所有文件都被正确地生成和提供。
在本脚本中,如何确保在He6环境中成功运行Docker容器?
-在He6环境中成功运行Docker容器,需要确保Dockerfile正确无误,所有必要的环境变量和配置都已设置,并且确保He6环境的网络设置允许容器与外部通信。此外,还需要监控日志输出,以便及时发现并解决可能出现的问题。
在本脚本中,如何解决在He6环境中出现的数据库迁移错误?
-解决He6环境中的数据库迁移错误,首先需要检查数据库迁移脚本的语法是否正确,确保所有必要的依赖都已安装。然后,通过查看He6环境的日志输出,确定错误发生的具体位置和原因。如果问题仍然无法解决,可以尝试在本地环境中重现并解决问题,然后再将更新推送到He6环境中。
Outlines
🚀 ドッカーコンテナの公開と本番環境の活用
本番環境でのドッカーの運用とその重要性が説明されています。開発者は本番環境でコンテナを使用することで、アプリケーションの進化を発揮させることができます。また、本番環境での作業は、手動でのライブラリの追加やエラーの発生を避け、効率的な開発プロセスを構築できます。
📋 事前準備と環境設定
视频スクリプトでは、事前準備と環境設定のプロセスが詳細に説明されています。これには、GitHubの登録、He6アプリケーションの作成、データベースの追加と設定、ローカル環境と本番環境の連携などが含まれます。これらのステップは、アプリケーションの開発と公開に必要な基盤を構築するために重要な役割を果たしています。
🔧 データベース接続設定の変更
データベース接続設定の変更方法が説明されています。環境変数を使用して、本番環境でのデータベース接続情報を安全に管理し、ローカル環境と本番環境で異なる接続情報を使用することができます。これにより、データベースへの不正侵入を防ぎ、セキュリティを向上させることができます。
📄 Dockerfileの修正と本番環境への適用
Dockerfileの修正方法と、本番環境に合わせた調整が行われます。本番環境とローカル環境での処理の違いを考慮して、Dockerfileを修正し、本番環境に適した設定を行う必要があります。これにより、本番環境でのアプリケーションの動作を確実にすることが可能です。
🛠️ 開発環境と本番環境の調整
開発環境と本番環境での作業の違いと、その調整方法が説明されています。本番環境では、特定の処理やアセットのプリコンパイルが必要になる場合があり、これらを適切に設定することが重要です。また、環境変数を活用して、環境に基づいた条件分岐を行うことができます。
🔄 イメージのビルドとプッシュ
Dockerイメージのビルドとプッシュのプロセスが説明されています。ローカルでイメージをビルドし、そのイメージをHe6のコンテナレジストリーにプッシュします。このプロセスは、本番環境へのアプリケーションの配布に必要なステップです。
💻 ブラウザでのアプリケーションのテスト
ブラウザでアプリケーションをテストし、正常に動作することを確認します。He6アプリケーションをオープンし、トップページが正常に表示されることを確認します。この手順は、アプリケーションの開発プロセスにおいて、重要な検証ステップとなります。
🛠️ 問題解決とログの確認
問題が発生した場合の解決方法とログの確認が行われます。エラーメッセージを確認し、問題の原因を特定し、解決策を探ることが重要です。また、He6のログを確認することで、アプリケーションの動作状況を把握し、改善策を立てることができます。
Mindmap
Keywords
💡ドッカーコンテナ
💡ローカル環境
💡本番環境
💡ライブラリ
💡イメージビルド
💡データベース
💡環境変数
💡CI/CD
💡アセット
💡ルーティング
💡エラーログ
Highlights
ドッカーコンテナを本番環境で公開する方法について解説している
ローカル環境と本番環境で同じイメージを使用可能にすることの重要性
本番環境でドッカーコンテナを使用することで進化が発揮される
必要ライブラリの手動的な追加が面倒くさいという問題の存在
本番環境でのドッカーの運用を通じて開発効率の向上
ヘ6畳というサービスを使ったアプリケーションの公開方法
データベースの追加と設定方法
環境変数を使用して本番環境に適応させる方法
ドッカーファイルの修正方法と本番環境への反映
イメージのビルドとプッシュ方法
コンテナのリリース方法と公開プロセス
データベースマイグレーションの実行方法
エラーの発生時のトラブルシューティング手法
アプリケーションのトップページを作成し、ブラウザで表示する方法
ci/cdによる自動化テストとデプロイの考え方
総まとめと今後の改善点について
Transcripts
[音楽]
ここから本番環境でドッカーコンテナーを公開していきます
皆さんドッカー使う時ってローカル環境音
構築するように使っているじゃないですか本館環境ようにね
どっかで使っていますどっかわねぇローク
まるで猫の使うだけだとね開発用だけだともったいないんですよ
本番環境で使ってこそね
どっかの進化っていうのは発揮されます
あのー豊満で使わないと
どっかで本番で使わなかったサーバーに対して必要なライブラリっていうのを手動で
こう1個ずつで入れたりするので
そもそもそれがめんどくさいっていうのとあとどうしてもねどうかると本番環境で差異
が生じてね
思わずエラーになったりとかねするんですよねでも本番環境でもこのた
4日を使えばローカルで開発していると同じイメージからコンテの羽起動させるだけな
んで
11ライブラリーのインストーとかで主導でやらなくてもいいし
さらにローカルとこの本番でもね妻とか骨生じないわけなんですよ
めちゃくちゃね楽です今から
ね本番環境でのドッカーの運用っていうのはね
まあこう本番環境でドッカーコンテナ後悔するっていうところをね
実際にやっていきます今回の音内容を終わればどっかで開発環境を用意するだけじゃ
なくて本番環境でも使えるようになっています
いやーこれね枠は
しますよねまあ楽しんでやっていきましょうで
どうやるかというとですねヘ6畳にどっかコンテナを起動させてアプリケーションを
公開していきます
ヘ6っていうのはですねサーバとか os 後はミドルウェアといったものをね
自動で構築管理してくれるサービスになりますインフローネ簡単
に構築して本番環境にねアプリケーション公開してくれるやつですね
でその屁6畳にドッカーコンテナをね
そのまま起動させることでアプリケーション本番に公開していきます
で前作ったねデイズアプリというのを経6上で公開するという形でね
今回
やっていこうと思いますはいで今回の音全体の流れなんですけどちょっと手順が多いの
会ね
最初に全体の流れを整理しておきますまずへ事前準備します
で事前準備をががあった後にヘ6にログインします
その後ヘ6アプリというもので作っていきます
そしてヘ録のデータ
ベースの追加と設定をね a 4
してどっかファイルを今回ねちょっとでローカル得ようと本番やで少しだけでへ6対応
でね
わけないといけない部分があるので撮っカーファイルをね本番環境ように修正していき
ます
で修正したそのドッカーファイルからねどっかイメージをビルドして
ドッカーコンテナをリリースして
いきます広くにでこれでね本番漢検公開ができます
公開したらね最後にね機能追加の手順をね
見ていくっていう流れでやっていきます会では最初に順次前準備からやっていき
ましょう
まずは切っとハグにね登録をしていこうと思いますリッドハブっていうのはそう
大須コードをオンライン上で共有するためのサービスになります
次回以降ですね see you cd っていうものをね構築していくんですけど
その時に必要っていうのとあと先にで登録しておいた方がちょっと進めやすいところが
あるので先に登録しておきます
すでに登録している人はね登録しなく
も大丈夫ですこちらを値切っと羽生と検索してきっと羽生ね
ほページを開いてくださいすると右上ねサインアップというのがあるのでねこちらをし
てここへね
必要な情報をしてねバネ圧いくつかステップあるんですけどね
そのステップで
を進めていって登録をおこなってください僕はもうちょっと登録しちゃっていうのはね
こちらの方からさ line って形でねサインしておこうかなと思います
続いて切っとの初期設定をやっていきますあのヘ6尾根使う上でちょっと設定しておか
ないとね困る部分があるので音設定しておこうと
思いますではですねたーーーー未来の方を開いて何か設定やっていきましょう
まず最初にきっと羽生のユーザー名とメールアドレスっていうのはねぎっとに登録して
おきますちょっとこの辺はねあまりまだ意味分からなくてもね
大丈夫でございます特に1回設定しておくだけられ
えっとまず切っとコンフィググローバル users .ネームというのでユーザー名
を登録していきますとっちここにね例えば貴音とかいう形でねあのここで先ほど切っと
ハーブで登録したユーザー名をね
入力してくださいでこれエンターしていきますってもう一個で登録しないといけない
ものがございまー
してそれがユーザーが e メールになります
これも切っと春で登録したものを登録してください例えばまぁまぁちょっと違います
けど実際は企業とあっている懺法. co . jp みたいな形でここでもね
ギッと羽生に登録した e メールを超えで登録しておい
てくださいはいでアートですねもうちょっとだけ登録したいものがございまして二つで
ちょっと追加で登録しておこうと思います
でこの2つはねあのちょっとで登録しておいたほうがいいんですけども
その意味がそのわかんなくても8大丈夫でございしたらね
やつなんですけども一応ちょっと登録しておきますのでこれほんと意味わかんなくて
大丈夫です一応説明するとマジの際に fast for などが起こらないように
するっていう設定でございます
でもう一個ですね設定しておきたいのが
とプルのディベースのディベースでマージずから
でこれはえプルの時に常にリベースするっていう設定
この2つはねちょっといいにわからなくてもいいんですけど設定しておくとね
今後便利なので設定しておきましょう
こちら設定
電子たらですね設定がちゃんとできているかを確認しておいてください
これちょっと私と皆さんでねあのない書かれている内容違うかもしれないんですけどね
こういう形で特に大事なユーザー名無という猿 e メールでこの2つこの2つ金
ちゃんときっとハブに登録したユーザー目と e メールになっている
ことを確認しておいてくださいはいではですね
このように切っとの速記徹底まで終わったら続いてへろくに寝会員登録も事前準備とし
てやっていこうと思います6とね
ググっていただくとヘ6が出てくるのでこちらを開いてみてください
ええっとこちらね新規登録ボタンを押し
していきます相手こちらね新規登録できるので皆さんこちらの音内容を言って
アカウント登録をしていってください
私はでも登録しておいてしまっているのでちょっとこちらの方でログインをしていき
ます
ええっとですね登録終わってねヘ6にログインしたがですね
こちらの画面からへ
えっとここのメニューせクリックしてアカウントセッティングズっていう場所がそちら
をクリックしてください
この日リングって言う場所をクリックしてくださいでここでね
ここにクレジットカードを入れるようになっておりまして
クレジットカードの音登録を事前にやっておいてくださいあの今回に無料の枠の範囲内
でね
辺戸区使っていくんでお金かからないんですけども
mysql を使うときにあのアドオンで mysql をね追加する形になるんです
アドオンってはプラグインみたいなものですね
そのアドを追加するのにクレジットカードで登録しておかないと追加できないんでね
これねお金はかからないんですけども追加をね
クエストカード登録を熱しておいてくださいはいでここまで終わったら続いてまたもう
x ぱ最後に事前準備として
6シール y install という風にね検索してみてください
そうするとねこのコマンドない屁6 cli ていうのは出てくるの
でこちらをクリックしてこれは猫&でね広くを操作できるようになるツールでござい
ます
こちらをね見ていくとダウンロードイースおよびにストールっていうのがあるのでね
mac の方はねこちらのコマンドを実行するからも車庫 installer
インストーラーをねダウンロードしてくださいウィンドウズの方はね今64ビット4
インストーラーっていうのをね
お使いのパソコンのデビッド州に合わせてなんですけども大体の方が64ビットの方が
多いかなと思いますのでこちらの方をクリックしてインストールを行う
ておいてくださいここまでできたらインストールが完了です
はいこれで事前準備が完了しました
続いてへロックにログインするっていうところやっていきます
あのヘ録画ネフェ6のコマンドで操作していくんですけどもその辺6コマンドを使う
ときはまず最初に
に耐えノア買うとかっていうのがねわからないと操作もできないので
へろ国グインしていく必要がありますそのためにね
旅なる開いてへ6ログインというふうに入力しましょうではねこちらで enter を
競ってなっているラッキーを競ってやってるんでねペンターキーを押そうと思います2
とかログインという風な出てくるのでこちらをクリックしてください
はいこれで6度員というふうに出てねログインが半量ですと
ではねこちらたーーーー宮の方に戻りますこれでねログインが出来ております
続けてへ6コンテナーでジストリーっていうのがあってそちらの方にね
道具インしていきますあのまあ今手鍋ジストリーっていうのがどう
国家のイメージ置き場なんですねでそちらの方にもログインすることでコンテナ目ジス
トリーっていう場所にまあどっかのイメージをねアップできるようになります今後で
プレス好きで撮っカーのイメージをね今天レジストリーアップする必要があるので最初
にね
ログインしておきましょうヘ6
墾丁
いいなぁログインというふうに入力します
6根底 naro ウェイで実行しましょうはいこれでね
login サクシードって出たので無事ログインできました
ですがそこでちょっとは先ほどからね辺がちょっとエラーが出てるんですけどもこちら
はちょっと見づらくなっちゃって申し訳ないんですけどおそらくね3
屋さんの環境でないんじゃないかなと思いますあたし恋術はにログイン環境で pc 2
つのユーザー持ってて
でこれこの撮影用のこれユーザーでちょっとね
テストをやっている関係でのを育てエラーが出ているんじゃないかなと思います
デレってとことは好調表示内容違うかもしれないんですけどね
このロビンサクシードって出てきたら問題ないのよねちょっとね見づらくて申し訳ない
んですけどもまぁ気にしないで
おいていただければなと思いますはいえーではこれでねヘ6のログインが完了したので
続いてハよくアプリの音作成に移っていきますではヘ6のアプリをね
作りましょうでへ6話でそのまあ一つ目アプ位
まあ一つこのリリースしたいね運用したいサービスをアプリっていう名前アプリって
いうで単位で管理するんですね
でえふぇろーくまーくりー a
a 棟クリエイト後にアプリ名をつけていきまして今回はレールずドッカー貴音なくで
kyt という名前をつけてみようかなと思います
でこのアプリ名はね他の人とね世界中のほかのユーザーと重複できないのでこういう
なんかあの重複すると机ない何かちょっとおりじゃあ名前を付けて下さい
あと
しれません
0 days ドッカーキー弟 kyt というでアプリメイジ系アプリ面しておこう
と思います
はいではこちらを作っていきますはいこれで無事作れました
ではねアプリが作れた続いてデータベースの追加と設定をやっていきます
データベースをねまぁ追加しようという
わけですねでへ6ではデータベースっていうのは今作ったねヘ6アプリにアドオンって
いう形でね
追加していくんですよで mysql の場合
アドオンがネギいくつか存在するんですけどまぁほとんどが有料で
でクリエイト dp のイ軍な
緯度というねプランだけ無料なのでねこちらをね使っていこうと思います
で一点注意があってですねあのこれ枚 sk のバージョンがこのい
クリア dp っていうねアドオンは5型なんですので特に無料プランのイグナイト
プランだと
で
今はローカルではねあの切っんどっかのファイルみるとわかるんですけども
ばフェイス9-8型尾根使っちゃってます本当はでバージョンすごいた方がいいので
ローカルの mysql を5型にするか
本番をね有料のアドオンを使って8型にするかした方
ほんとはいいですでもねまぁ今回はそんなバージョン違いで困るようなことはないので
様は進めていこうと思いますではねあ道を追加しましょうヘロックアドオンず
クリー8でクリア db を指定したいのでクリア db のイグないとプラン
で配布 a これアプリケーションの略ですねはい分アプリケーションベールす
dogger 機を kyt という形であ道を追加していきます
これで無事アドオンを追加できましたではねアドオンでデータベース追加できたので
データベースの音設定俺していこうと思います
まずねあのレールずの接続先っていうのをね
変えておきましょうプロジェクションの db データベースの音接続先情報はね
今回環境変数にして渡していこうかなと思いますあの環境変数っていうのは廊下の開発
環境とか
本バー環境と彼らをその環境によってね値を変えるための仕組みです
あの後でソースコードを値切っと羽生常にね
まあオンライン上にアップするんですけどもその時にですねデータベースの接続先情報
が入っているとデータベースにね不正侵入されるセキュリティのディスクがあるんです
よ
でそれ
米環境変数にいえ体で環境変数は
a
その切符薄情にアップしないことでソースコードにデータベースの音接続先情報をね
載せなくて済んでまたね接続先より環境ごとにも切り替えられます
そのために8ちょっとファイルをねソースコードを開いちゃって前回の前で作ったね
あのどっかジャイあの
レイルズの f ソースコードを開いてくださいとでこのソースのコンフィグの下に
ですねちょっと見にくいんですけどデータベースやヌルっていうのがあって
こちらを開いてくださいこちら開くとですね
デフォルトと development とペーストと
で7番したにおそらくプロダクションがありますね
プロダクションっていうのがあるのでこちらので接続先情報をね
修正しておこうと思いますはいでここでね
本番環境のデータベースの接続先っていうのを設定していくわけなんですけどもまぁ
ヘ rock no さのデータベースの接続先情報っていうのは
ここに指定したいわけですただまぁ直接指定すると先ほども言ったようにセキュリティ
のリスクがあるので
環境変数っていうものをねここであれこういう形でおいていこうと思います
アップの8データベースなんでアップのデータベースでいいか
アップのデータベースにしといてユーザー名は由緒
8たんでしょうかアップのデータベースのユーザーネームでしょうかな
ユーザーネームとパスワードはそのままでいいかな
あとはホストがねえっ床の上のほうで設定してあるんですけどホストとかもあるので
ホストがねーなローカルだとにデフォルト後 dp になってるんでこれどっかポンて
ない
の設定なんでこちらもね本番環境にアップしていくのでちゃんとんぱん環境の接続先
情報を入れるようにアップのデータベースのホストという形ね
置き換えておこうと思いますはいこれね本番環境の接続がね
環境変数ができるようになったので
とヘ6で動かすとき經ろくに環境変数を渡してあげればちゃんと接続できるということ
になります
はいでへこのデータベースの接続先情報っていうのはね
6で確認できますエロくコーン
コーンフィグの配布のアプリケーション aa ルズドッカー
kyt という形でね入力してみてくださいってするとね
この
どうしようかなあこっち飛びにくいな下の方にですね
色々とで表示がされておりますとでこれで何が表示されているかと言うと
mysql 後にねここがユーザー名になりますってコロンがあって
パスワードがあって at の後にホスト名がねここが入っていて
でスラッシュのあたにデータベース名が入っているっていうねそういうふうなこれ目
仕組みになっております
これでまあ一通りの音接続先情報が確認できます
では今確認した関節
続先情報っていうのを経6の音環境変数に設定していきましょう
今ちょっとね私こちらの方メモ帳の方でね今の接続先情報全部で記載しましたでへ6
config at っていうコマンドを打つことで環境変数として接続できますあの
登録いきますアップデー
データベースはデータベースの接続先情報 up データベースユーザー年
アップデータベースパスワードアップデータベースホストって形会で先ほど
データでーす破るの方でね接続設定したこの環境変数に応じてね
こちらの環境変数の値を設定しておきます
ちょっとでこちらコピペ
でパコパコとね
塗っていきますでしょ
続けていきますねーはいっ
はい続けてやっていきます
ピッ
ピストハイフン英ウェールズとアーケード yt というコマンドで雪共同で環境変数
がちゃんと設定できているかを確認しておきます
はいでこちらの一通り設定できたら設定がねちゃんとできているかを確認しておき
ましょうヘ6 config 配布会
ウェールズどっあ kyt というコマンドで確認しておきます
はいでこうするとねアップデータベースアップデータベースホスト
パスワードユーザー名というのがね
ちゃんとで登録できていることが分かります
はいこれでデータベースと接続がでできるような音設定が完了しました
続けてロッカーファイルを方
本番環境ように修正していこうと思います
あのーデータベースの音接続設定まで来たので
ドッカーンファイルをで本番環境ようにね修正していきますあの
処理が本番とねローカルでちょっと変わってくる部分があるのでそこの部分をね
対応していこうと思います
ええ今回ですねまぁどうするかというとちょっとソースコードの方
もどっていただいてソースコードねえプレスちょっとこのソースは閉じちゃって
でこちらにね今回ちょっと start . sh というファイルを作っちゃおうと
思います
start . ss でこれちょっと1番目トップディレクトリーに一番上の
ディレクトリーの中に start . sh をね
作っていきますってここ
いいねちょっとねえっとその本番環境とクレイの処理っていうのは a ておこうと
思います
まずはですねちょっとドッカーファイルの方を開いてください
どっかファイル今こういう風になっておりますねこちらのちょっと修正していきます
まずですねか8どっかファイル環境変数を設定できて環境へ
エンスーにちょっと設定していこうとバスエール全部プロダクションっていう風に設定
しておきましょう
デフォルトね環境変数をレールず
デール全部という環境変数でプロダクションに入れておけます
あとはちょっとねどうか利用にこれあという若き数や設定を入れていくでちょっとそれ
はねお待ちくださいねまずこういう風な設定を入れて
おいて
次ねこっからばにポイントなんですけど
市場下にいくつか処理を追加していきます
まずパッっとをコピーましょうかな
コピーっいいスターいい
あと. sh スプスラッシュ start .エッセイ子と先ほど作ってね
start . sh というファイルをこちらね
スラッシュのねまぁ直下にルートディレクトリー直下に彫ったコピーしておきます
コピーしたら続いてこれにね実行県券をもらった私ます
チェーンジもっと744
スラッシュ start . sh と
とこの後ねちょっと最後に変えちゃいますいった
sayoko マント
8 sa 1
とスラッシュスター
と. sh とこういう形ね処理を書いておきますでこれ何しているかと言うと
start . sh のファイルを取っカードありねコピーしてきてでそれに対して
実行権限をね
付与していますとこれでちょっと役ファイルの権限をで変えていますこれチェンインチ
モードでね
で
最後にデコ&で一番本ドッカーファイルをね最後に起動させる時実行するコマンドで
sa 日スタート取って生地ということでこのファイルをね
実行しておりますといってまぁね最後に実行するのでそのね実行できるするためねこれ
実行権限を持してというわけですって言われ start . se
うちのほうにいってねあじゃあ何をするかというとですね
チョコシェルスクリプトの音ファイルなので
えーまぁこんな形でね最初にねまずおまじないのように書いておきましょう
でここに何を書くかというとまず if 文でいっしょ
えっと
たら遺書ベールずつ演武が8レール全図が
プロダクションだったらとプローダぷくしょんだったら
経営者のか
その時その時前
どこ
全バンドルエグゼック
レールすぁー摂津 assets
プレイポンパーいるパティプレイコーンアイルードゥパティスリー
サーバーハイフン p でヨイショ
8ポートかな凍っ等指定しますでそれがなかった時は3000番ポートにしますと
ハイフン b
00000という形の処理を書いておきます
でこれなーまぁ何書いたかというとですねちょっと解説しますと
it
19名におまじないですとシェルステップアップは声おまじないを書いておいて
ください
で if 文でこれをしたかったためにね
あの買取参考ドッカーファイルって言う分
条件分岐がめちゃくちゃやりにくいんですよねそういうふうにやるものじゃないんです
よ
でそれだったので本番環境よりいっぱい
渡部にこちらへ書類の文教いたいがために記すはいシェルスクリプトのファイルをね
間行ってそちらね条件文系で言いますとで
魂胆環境時だけ実行したいものがあってですね
それが何かというところ assets プリコンパイルというやつです
あのまあこれレイズ特有の事情なんで特に私立
じゃないんですけどもレールすって css とか javascript の
ファイルをひとまとめにしてから
で html で一発に読み込めるようにしているんですよでそのための仕組みはここ
で書いたり assets プリコンパイルでローくると本番だと猫このねちょっと
挙動が違ってです
ねローカーでこれ実行しなくていいんですけど
本文ではこのコマンドで実行する必要があるんですよ
まなので今シェルフスクリプトのファイルを作ってね
いや本番だけ実行するという処理を書きました
最後にね何を実行するかというと
レイズをサーバを起動させるようにしておきますルーサーバーを起動させますと
ポートが環境変数でありますポートの値が入っていたらそれを使って
おじゃなかったらさん何もなって設定されてなかった3000番ポートを使います
バインドで it rsi 0000どこからが ip アドレスも ok という形
で
タイインドしておきます要はねこれ最後にレールサードで立ち上げているということを
やっております
hi na これちょっと補足なんですけども
こういうふうにどっか増えるでまぁこんばん環境だけ特 a の処理入れたいとかね
そういえば環境による
条件分岐したいときはよくねこういう風な形で
まあなんか実行するで最後はコマンドでしゅ
まーすスクリプトファイルを実行さしてあげてデフォスクリプトファイル内で条件分布
するということをよくやります
でもしくはねそもそもドッカーファイルをね今ドッカーファイル同じファイル使って
ますけどどっか file .
development ドッカー file . pro
たくしょんみたいな形でね環境ごとにどっかファイル早々に大きく開けちゃうっていう
のもね
i ですが別のイメージをでもそもそ本番とね
どうかで使いたいとか言う時はでもドッカーファイルを分けた方がいいですし
今回みたいに一部処理だおちょっとか条件分岐したいくらいでしたらこうやってね
シェルスクリプトでね
条件分岐させた方が
まあシンプルかなと思います
ヘで声でね本番環境だっけ汗っプリコンパイルする用意したらですねちょっと入力して
おきたいコマンドがあって
環境変数の根元追加をしておきますでレールずサープ static ファイルズって
言う道で
true にねしておきますで総数とで汗っプリコンパイルがね
本番で起動するようになるのでこちらの環境変数をちょっとで追加しておきましょう
でついでに合わせてですねどっち
愛知ちょっとに必要になる設定があるんだよねそちらの音設定を姉と事前にやって
おこうかなと思いますこれでちょっと
to lose ヘ6.サポートすらシュリ3つ s rush ブートたいアンダー
バータイマーとってね
url いってくださいとでチェンジプーと time out っていうことで
ヘ6尾根でプレーした時にポート番号をねまぁサーバーがバインドするんですけれども
それがデフォルト後で60秒に設定してあるんですよ
でヘラクねちょっとね無料モードだとね結構ま審判が少なくてね60秒でね
ポートーバーエンドできなくてエラーになることが割りとあるのでこちらへねちょっと
秒数を伸ばしておこうと思いますどえーるぞっカー kyt を選んでね
でこちらで秒数をねこうやってよいしょ
設定できるので120秒2年延ばしておきます
船10秒に上げておいたほうがでまぁ不要なねエラーが減るかなと思います
はいでサックに十分設定したねチェンジブルーとチェンジというボタンをで
をして
様子の変更をねしておきましょう a ここまできたらねえ
準備がねほとんど出来たので最後にですねあの廊下のサーバーをねちょっと削除して
おくを webサーバ削除しておこうかなと思いますそのあのローカルで web
サーバーが起動しているとヘ6でねエクサーバーが起動して
可能性あるんですなくちょっとそこの音設定がねあのまあコンフリクトしてねそういう
可能性があるのでサーバをで削除しておきます
道
かエイドカー本ポーズダウンでね
サーバーだね削除を1回を行っておきましょう
って a サーバー削除できたらねこれでまあ大丈夫なんですけどもねの止めねソース
の下の添付ディレクトリーのしたのに pit ズっていうのがあってで
そしてサーバー. pi ディっていうファイルがあるんですよ
こちらの音ファイルよね隙を突けサーバーが削除されたこのファイルも削除されるはず
なんですけどこれで残ってるとねその屁6でねらーになっちゃうので
これをね remove コマンドで削除しておきます
はいこれでどっかのねその入るの本番よ
設定ないもの頃完了しましたではここからいよいよ
とかイメージをビルドして日リースするところねやっていきます
まずはねどっかイメージをビルドして今食べリストでいいねそのビデオしたイメージを
にプッシュしていきます
そのためのコマンドがですねローク墾丁
ああああああ
プッシュというものを使います web というでちょっとまあ引数をつけておいて
ください開封
al ずドッカー kyt と
で8ですねこれでまあこのコマンドを使うことでどっかイメージをビルドしてね
コンテナーレジストリーの方にへプッシュはできますで声ね
1回年イメージにビルドし直すで結構時間かかるので気長に待っておいてください
はいこれでどっかイメージをねビルドしてコンピューターレジスト1プッシュするとこ
まできました
じゃあねこれができたら続いて6あの根底ナレッジストリーに挙げたそのイメージから
ヘ6の方にね
どっかコンテナのでリリースしていこうと思います
六根てえなあああリリース dd す配布
リース web かなリリース web ハイフン la ドッカー kyt という
形でね
指定していきますはいえーこえー
でねヘ6の音コンテナをねあのどっかのコンテナを経6畳にね
リリースできました続いて今回ねじっする必要ないんですけどね通常のフローだとです
ね
あのでデータベースので真イフレーションの処理っていうのをね
実行していきますあのデータベースのテーブルを更新したいときは
0留守の場合ですねマイグレーションっていうものを実行するんですよ
でマイクレーションって何かというとエールすでーそのデータベースのテーブルをね
更新する仕組みでこまグーツとレール勢にこういう風底部作りますということでしてー
ておくとそのデータベースのテーブルを熱その東海店を通り作ってくれるんですね
でこちらねコマンドーねそうコマンドを実行していきますで不不不不不不不不不不不6
帖の音に対してコマンドを実行したいとかへろクラブというね
コマンドを使っていきますヘ6弾の後に見える
実行したコマンドをね
入力する形ですねで今回はバンドルエグゼック
a 9 d be my プレートエールズエール全部がプロダクションから
プロダクション配布エールズドッカーて yt という形で
入力していきますまああのバンドエグゼックレイク db マイクレートというのは
レール上でね
データベースのマイグレーション実行するコマンドになります
こちらね実行しておきましょうでまぁさきほども言いましたけどこれでデータベースの
テーブルを更新したいとキノコバンドです
今ねとかにねデータベーストピ
何も作ってないのでテーブルをね特にコレなにも金ないんですけど通常だとこういう
ものを実行するということで実行しております
あれ
うまくいくと思ったらなんかエラーになってますねよし
てエラーになったですねあのエラーはですね解決のコツがあってですね
歯のまあ雨らーメッセージ丁寧に読むというところでございますが見てるとヘッド
syntax error というふうに出てますねなんか構文が間違ってるみたい
です
ねへへーとアップ幸福のデータベース破るの54秒目をみてくださいとそこで
シンタックスエラーで仲良きせなかった何かが出ておりますよと
では54行目を見てみましょう
データベース破るを開いて54行目を見ます
あーで54行目みると
ヘイトはそういうことか多分なんですけどこれ誰もぽいつがないか
これがまたも抜けていたのでおそらくエラーになったんじゃないかと思いますではです
ね
修正したところで気を取り直しですね
もう一度実行してみましょう
をまたエラーになりましたね
はてさて何ででしょうねぇ
エラーメッセージは100安心パックセラーというふうに出てますね
あれー形式間違ってない気がするんだけどなぁ
ヘイトではですねこういう時はまずローカルで実行する方針に切り替えていきましょう
今ね本番環境1回ね直接実行するなんていう横着をカバーしていたんでね
1回ローカルの方で実行していきますそのためまずはね
ローカルの方法のコンテナをねもう一回ちょっと起動させておきましょう
が起動した上でロッカーこちらの廊下の方で実行してみますどうか今ポーズエグゼック
web
えっとバンドルエグゼック
グレープ区 db 枚クレープという形で実行してみます
それ
これはどうも問題なく実行できているみたいですね
特に syntax error 何も起きませんでしたね
上がった渡ったぞ
at のこれわかりましたわかりましたようやくわかった
家
えーと今ローカルの方で実行できたということはですね
今ね文法エラーが最初に怒ってたけど修正したから今分布を選ばれ
起きてないということですにもかかわらずなぜ
ローカルあのそっちの&ヘ6の方ではねエラーになったかというとですね
ヘ6の方でプッシュしていたはずにイメージをね
ビルドしてプッシュしたじゃないですかあのときのイメージははなんですよね
ソースコードを修正したらもっかいのイメージをビルドし直さないとソースコード反映
されないので修正されないので今回またね
修正してもエラー
になったというわけでございますきっとそのはずである
ちょっともう一回プッシュお手しなおそうかなと思います
えっとのヘ6根底なプッシュ web でね
もっかいどっかイメージをビルドしてロックのコンターレジストリーの方にプッシュし
ておきましょうまたねこれちょっと時間かかりますからしばらく待ちます
入っねちょっとプッシュした後に気づいたんですけども
あのプッシュ
するファイにサーファーをでだ噴砂しとかないといけないんでした
どっか今ポーズダウンでね1回 webサーバの砲弾させておいてください
また2弾させるだけじゃなくて多分大丈夫だと思うんですけどねのため
pid ファイルの方もね削除しておいて下さいでダウンしてはネタ pid ファイル
だけはこういうふうに
そんな入れないよって出るのでそれはられレバーとで問題ないです
ではそれをやった上でねヘ6根底なってしベルの方でもう一回どっかイメージをビルド
してプッシュしていきましょう
はい ad はでプッシュができたので続けてリリースよね
しておきますね先ほどイメージをつくり直したで今だね
こちらの音ヘ6の方にそのねイメージャないようね
反映させていくというわけですリリースができたらその上でね
こちらのねなーん
へろクランでねもう一回にデータベースのマイグレーションを実行してみましょう
ああああああ良かった無事令ぺー無事
実行できましたまあ特に何も今回設定したいに何も起きないんですけどもまぁつまり
ねえが出なかったのでは無事ね
実行できたというわけですはいえーディーラーようやく実行できた
ので広くのアプリを開いていきましょうヘ6
オープンと6オープン配布
ネイルズどっか kyt という増え入力します
ヘ6のねアプリケーションでで黒いリリースしたでアプリケーション広く開き大健闘の
へろコープっていうのはね
使うとブラウザ上で勝手に表示してくれます
入って声ねこんなページが開かれました
っていう間にページがないよという風に出ましたこれができたらで実はレイズがこれ
レール柄で表示ページがないよって表示してくれているんですけどちゃんとリーズは
起動しているっていうことでこれでバッチリでございます
ちなみにねあーなんでページがないよって表示されているかと
いうとですねあのーページをつくって台からでございます
アの前の海ではねレールず動かしたらイヤ your 御礼ルスっていう風に表示され
たかと思うんですけども
アレってあのローからでしかで動かないようだねレールずで特殊な設定なんですよ
で本番だとで表示されないん
ですよねなのでベッドと
ページを作る必要がございますで今後ね
洞察するときねあの動作確認すれページあった方が楽なんでね
1回ここからねページを作っていこうかなと思います
で
ちょっと定常す作ればいいねとはいえちょっとしたいことがあるので先にちょっとさせ
ておいてくださいと今ね
ちゃんとねページがないよってユーレイル増ページ金表示されたねそれが表示された
ばっちいなんですけども
場合によってはねエラーになってねまぁなんかの別の画面が出ることがあると思います
で僕もね
実際ねこれやと気で割と派はりましたが多分で2時間くらいにハマったんじゃないかな
わかんないけど
12時間くらいは普通にはまってましたねでもしエラーになったらあのまあグって何と
か解決をね
試みるかまああくまでここはね理解にとどめておいてへ6畳でネウ子
ガスのはね諦めるって言うのはね動画を浴びるだけするっていうのはね
正直ありかなと思いますちょっとでハマった時にね解決がめんどくさい気がします
でえーっとねまぁちょっとちなみにえらいなった時どういうふうに解消していったら
いいかというとバズ
環境変数を設定しておきたくてぺ6コーンフィク
a
a at でレール数
ローくううう2 st ダディ永劫 ust pout だとから
std を言って= true という風にしておきまして配付のかと
大府営ベールずドッカーケイワイティティ
結構になりしているかと言うとですねあのでドエロくでえっと
エラーの音解消していくときってへ6-6を見ていくんですけど
デフォルト後でヘル区で出力されるログの量が少ないのでこの設定しておくとね
たくさんログが表示されるようになるのにね
この設定を入れておきます
敵はねこれをで実行しておきましょう
これを実行したうえで何をするかというと
へろクログッズロブず配布ティで a で海部
な様と配布でレールずドッカー系マイティというふうに入力します
でこれを
入力することでへ6度ねログを見ることができます
実行してみましょう女超えるとねいろいろ今出てきているんですけども
ヘ6-ログがーじっを表示されますと
って8例えばでサイトに年アクセスしてね
北海リロードとかしてみるとでまたここに新しいアクセスがあって来
じゃあねログ情報がねまあそのたびにアクセスを度出力されるという形になります
でこのまま6を見ているとねたとえばここにはフェータルって出てますけどね
まあこういう風ななんか情報がねあのエラー情報とか表示されるのでその情報を見て
ゲーム
制作して場合によってググったりとかしながら
エラーを解消していくという流れになりますではでこちらで解く今必要ないので
コントロール c で
低床でしておきましょうはいえーでここからは
機能追加をやっていきます先ほどねページ金なかったので
まああのページを追加秋冬が今後ね開発する時にはあの
デプロイので動作確認とかする時なくだって言ってんが行くこと
頭機能追加のステップ
ねちょっと知っておきたいのでこちらをやっていこうと思います
愛で今回やるのはね単純にあのちょっとページにアクセスしたなんかね
html が表示されるっていうものを単純に作っておこうかなと思います
宅前ねデバッグ用でございますまずはねどっか by コントローラーというものをね
作りますあのブラウン
んですか甘酢どっか今ポーズアップでえっと開発するようにサーバを立ち上げておき
ましょう
立ち上げたらコントローラーを作っていきます
レール諏訪ねコントローラーていいものがあって何かというと
ブラウザ母のリクエスト受け取る部分でレール州でそのページを溶接機やでまずコント
オーナーを作る必要があるんですねではコントローラーでコマンド5くれるのでと
マンド実行しておきます
どっか今ポーズバンドルエグゼック
web
愛知がったどっか今ポーズまずはちょっと
fsx web という形で昨今
えーっとコマンド名を指定色を指定していきます
バンドルエグゼックレール筋ジェネレートコントローラーってコントローラ作れよっ
今か言う
サーズっていう名前のコントローラーをね作っておこうかなと思います
はいこれでねいろんなファイルがねこうやって作られましたとでは作られたらソース
コードを見てですね
こちらの方でえっとまずね
ルーティングの設定をしておこうと思いますコンフィグの下2 ad
レイプ.ルビーっていうのがあるないねこちらを開いてください
でルーティングっていうのは何かっていうとどの url に来たらどの
コントローラーのどのアクションにその末シーンをねリクエストを送るかっていうのを
ってゆうまそルーティングを設定するものになります
でこちらで ak
えっとのトップページに
なあ
ユーザーズコントローラーのインデックスというアクションにえーっと通信を渡すよ
っていうところをね
記載しておきましょう超えている
ユーザーズコントローラインデックスアクションの方に2死ねことになります
ではねコントローラーの方今度は開いてですねアップの下のコントローラー頭の下に
ウィザース今となっては作られているのでそちらを開いてくださいではこちらで
エットレ
メスを
ちょっとを追加していきましょうデフインデックスっていうね
メソッドを追加しておきますアクションです先ほど
ルーティングのところでユーザーズのインディックスというアクションに飛ばすように
したのでコントローラー4でも
ユーザーズコントローラーのインデックス t アクションを追加しておきます
id
ウェールズダールコントローラーにこんな感じでねデフっていう風邪等で定義すること
をいくつもに複数度
開く性根を持てるようになっております
続いていい
html をそのブラウザ表示できるように
ビューファイルをね作成しておこうかなぁと思います
アップの下のビューアップの下に views っていうディレクトリーのあってそこ
にユーザーズっていうのがあるのでこのユーザーズの下に index . htm
. erb というファイルを作っていきます
これがねいわゆる html 5になります
ではなんでもいいんですけどまぁ h はで
と作っておきましょうかで8どうしようからハローワールドとかいう風表示するような
えっとまぁシンプルな処理を書いておきましょうハローワールド
はいえーわねこういう処理回たーーーーですねえっとブラウザを開いてローカルホスト
のさ
全番ポートをね開いてアクセスしてみましょう
これでうまくいくとそのレールずで先ほど今作ったページが開かれるはずですはい
表示されました小出ローカーの方でバズとりあえず
トップページを作成することができましたではこれをね今度ヘ6の方に反映させていく
桜と思いますまたターミナルを開いてください
まずはねまたねいつも通りサーバをで撮っカートって何で落としておきますとか今
ポーズダウンと
ってダウンしたらついでにまた
えっどこの pid ファイルをね年度食べ削除しておきます
はいて a それやったら続いてイメージをまたねプッシュしていきます
ドッター根底なくてしベルでねイメージをプッシュしましょう
はいこれでビルドしてプッシュができたので続いてね
ヘ6常にイメージをねリリースしていきますリリースコマンドを実行しましょう
はいリリースできました es できたーーーーでまたオープンしていきましょうヘ
ロックオープンということでオープンしていきます
これでまたにブラウザで開きます
先ほど年譜ランサー開いているページが残ってたねそちらページをリロードして
いただいても大丈夫です
でへ6ね烈風した後だとちょっとねえっとまたサーバーが起動する時間かかるのよね
しばらく待ちます
あれ
ぺらぺらーになりましたね
これ
おっかしいなぁああエラー元ないつもりだったんですけどねええええとではね
ログ連れでこういうテックスねえロックログずコマンドを使って何が起きているのかを
ね
見てまいりますではね1回でちょっとアクセスしてみましょうか
これでアクセスすると何か出ておりますかね
えーとこれで見てみるとなんか色んなも出てるなぁちょっと
表示が見にくいのちょっと表情ちっちゃくちゃいますね
試着してもあまり見やすさが良くならない
テンプレートエラーアークプリケーション css is not present が
出ている
8ですねこちら山根エラー原因見るとどうもねえっと汗
アセット application . css が存在しないようたーーーーセット
パイプラインにというふうに言われております
これ途中であの処理あったと思うんですけど本番用の処理であったと思うんですけど
アセットプリコンパイルをねあの家たかと思うんですねスター. sh デーでこれか
でどうもうまくいってないみたいで
ですねでこれがうまくいってないがゆえにこのバンドルエグゼクレールず assets
プリコンパイラでエラーになっているようです
なんでうまくいってないんだろうなーって思っていは見てみるとね
ここでちょっと見えましたプロダクションっていうのがね誤字ってますね
タイプをしておりますショックを隠しきれません本当にショックです
ぷローダープロダークショアーだ
ショックすぎて今これプロダクションを綴りがあっているかない自信持てないですね
ええ
えっとまぁこういう時はドッカーファイルを見ましょうかどっかファイズの方でレール
前がプロダクションとなくているので部屋をコピーして貼り付けます
よしこれで問題ないはずですではこれで問題ないことを確認しました第1回目サーバー
の方に戻ってへコントロール c 終了して
もう一回プッシュからやり直していきましょうではね
プッシュがうまくできたので続いてリリースの方をね
また実行しておきます ad 澄んできたレアたオープンしていきましょうヘ6
オープンをしていきます背景ブラウザの方ででようやくねハローワールドリーフいいね
表
法事が出来ましたこれでねえへへ6で
ヘ6畳でドッカーコンテナ金起動したわけです
いやーよかったこれでねほんと犯行かよねバッチリできてます
はいでどっかはでこのようにですねあのーまあローカルで開発したそのドッカーの
イメージをね
ビルドしてそれをねえ6畳にねまあ本番環境所に直接アップすることで
どうかで動かしたものをね本番環境でも同じようにそのが動かせるというところへね
まぁちょっといろいろ詰まっちゃったんであの落差がどれだけちょっと張ったかは
わからないですけど
運用がねちゃんとなみー乗ればねめちゃくちゃなくというわけでございます
データだね課題としてあの機能追加するたびにわざわざ
どうかあるのねどっかコンテナーを落として後ないあんな不コマンドいくつを訴え化
するのね
結構面倒くさいはケースでそのたび待ち時間もライト発生すると
で今はまだアプリケーションの規模はちっちゃいないね売ってるコマンドとかも少ない
んですけどもっとアプリケーションが大規模化するとでコマンドも複雑になってもっと
でプロへもね
めんどく
なくなっていくわけですそこで次はね ci cd を導入してテストやでぷろいどね
自動化というのをやっていきたいとおもいます
というわけでおつかれさまでした
5.0 / 5 (0 votes)