【Docker超入門 #7】Docker ComposeでRailsを構築しよう

Поделиться
HTML-код
  • Опубликовано: 1 дек 2024

Комментарии • 57

  • @新井元気-g2x
    @新井元気-g2x 3 года назад +2

    あけましておめでとうございます!!新年早々ターミナルと同化してますね!
    フロントとバックエンドを1つのコンテナに入れて運用してしまっているので、
    次のプロジェクトはコンテナを分けて運用できるようにしっかり勉強したいです。
    今回CI/CDまで解説くださるというのでとても楽しみにしてます。
    独学エンジニアも毎週とても楽しみにしています。

    • @KiyotoUniv
      @KiyotoUniv  3 года назад

      是非ぜひ分けてみてください!Dockerは 1プロセス毎にコンテナを分けるのがベストプラクティスです^^
      RUclipsも独学エンジニアも見てくださってありがとうございます!今年もよろしくお願いします!

  • @shou-zx7jl
    @shou-zx7jl 17 часов назад

    イメージ作成時に、エラーが発生して行き詰まってしまった人へ
    原因: rubyGemsのバージョンが古く、インストールするgemの要求水準を満たしていない
    解決方法: FROM ruby:2.7 -> FROM ruby:3.3に変更(例: 3.3 最新の安定バージョンにする)
    これでとりあえず、環境構築出来ました。

  • @shunsakai4801
    @shunsakai4801 3 года назад +3

    docker-compose 使ってたのに全然知らないこといっぱいありめっちゃ勉強になりました。
    あと、関係ないですけどエンジニアを考えている友人にもこのチャンネル紹介しておきました!

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +1

      おぉぉぉありがとうございます!!めちゃくちゃ嬉しいです!!

  • @yu2194
    @yu2194 3 года назад +1

    動画大変参考にさせていただいたいます!
    質問なのですが、 きよとさんがアップされている【Docker超入門】の1~5を拝見し、実際にlaravelでアプリを作りました。
    もう1つ別のアプリをlaravelで作成しようとした場合、環境構築を一から行う必要があるのでしょうか。
    初心者質問で申し訳ありません。

    • @KiyotoUniv
      @KiyotoUniv  3 года назад

      おぉご作成されたのですね!素敵です^^
      別のアプリを作成する場合は別のディレクトリに再度新規のDockerfileを用意しますね。プロジェクトごとにDockerfileもそれぞれ用意することで、プロジェクトごとに独立して環境を用意できます(Dockerfileはコピペでも大丈夫です)。

  • @長谷川零-b7j
    @長谷川零-b7j 2 года назад +1

    いつも勉強させていただいております。
    % docker-compose run web db:create
    をしたら
    Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "db:create": executable file not found in $PATH: unknown
    ERROR: 1
    というエラーに遭遇しましたどうやらpathが見つからないということなのですがエラーの原因はわかりますでしょうか?
    追記:
    ちなみにOSにはmysqlをインストールしていいないのですがそれと関係ありますか?

  • @ポッポ-v3c
    @ポッポ-v3c 3 года назад

    dockerfileのapt-key add辺りのコマンドでエラーが出ました。非推奨になったみたいですね
    コマンドの意味が分からなくて調べたんですけど、通信を暗号化してやり取りするための鍵を保存しているんですよね?
    パッケージのダウンロードでは見られても問題ないのでは?と思うんですけど、実際なくても問題ないのですか?

  • @林幹-c9o
    @林幹-c9o 2 года назад +1

    いつも動画参考にさせていただいています。
    ありがとうございます。
    動画概要にてM1 macにおけるMySQLの動作の追記をされていましたが、
    2022/8/15(Mon)現在問題なく動作することを確認しましたのでご報告いたします。

  • @user-hi9sk7ck6g
    @user-hi9sk7ck6g 3 года назад +1

    docker-composeのみではできないのでしょうか??
    dockerfileも使う理由を知りたいです

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +3

      できなくはないのですが、ライブラリのインストール等を行ったりするとごちゃごちゃするので、個別にDockerfileに分けるのが通例ですー

    • @user-hi9sk7ck6g
      @user-hi9sk7ck6g 3 года назад

      @@KiyotoUniv
      ご返信ありがとうございます
      そうなんですね!
      Dockerfileと Docker composeで出来ることは同じでなのですかね!ファイルが2つに分けられるという点以外に理由はありますか?
      また、HerokuへのデプロイなどもDockerFileのみで可能ですか?

  • @こはくチャンネル-g9b
    @こはくチャンネル-g9b 3 года назад

    いつも勉強させていただいております。
    自分はPHPでの開発をする予定なのですが、本番サーバーとして契約しているエックスサーバーではroot権限がないため、dockerが入れれないと知りました。
    その様な場合、ローカル環境と本番環境をdockerで同じにすることは難しいかと思うのですが、ローカル環境をどの様にするのがスムーズでしょうか?

    • @KiyotoUniv
      @KiyotoUniv  3 года назад

      OSやDBなどの種類とバージョンを出来る限り揃えるのが良いかと思います!

  • @monneko9375
    @monneko9375 3 года назад

    今後自分でDockerfileを作成していくようになってきた時に、DockerfileのRUNに記述されているlibraryの更新等の内容も必要に応じて自分で判断していかなくてはならないと思うのですが、RUNに記述するのに必要なコマンドはどのように判断したら良いのでしょうか?

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +2

      講義中にやってたプロセスと同じで、コンテナ内に入ってコンテナでコマンドを実行し、動作したコマンドをDockerfileにも記載すれば良いです^^実行するコマンド自体は公式ドキュメントやブログ記事等を都度参照します。

    • @monneko9375
      @monneko9375 3 года назад

      @@KiyotoUniv ありがとうございます!

    • @GAME4967
      @GAME4967 3 года назад

      @@KiyotoUniv とても勉強になる動画ありがとうございます!
      同じく、Dockerfileの作成について質問させていただきたいですがdocker-compose run web rails db:createした後、このrails db:createはDockerfileには書かなくて良いのでしょうか?
      お手すきの際教えていただけたら幸いです!

    • @てぷきぴ
      @てぷきぴ 3 года назад

      @@GAME4967 rails db:createは、railsアプリケーションで使用するためのデータベースをMySQL上に作成するコマンドです。これを実行することでMySQLコンテナがマウントしているvolumeにrails用のデータベースが作成されます。これ以降はMySQLコンテナが立ち上がるたびに同じvolumeをマウントし同じデータベースを読み込むので、railsアプリケーションが書き込んだデータを消さずに継続して再利用が出来ます。つまり、データベースは2度と作成する必要がありません・・・と言うか、逆に再作成をしたらそのたびにデータが初期化されてしまいます。なので、このコマンドを実行するのは最初の一回だけで良いのです。

  • @HelloWorld-echo
    @HelloWorld-echo 3 года назад +1

    楽しく拝見させていただいてます!
    今回はrubyでの構築だと思うのですが、まだrubyは学んでおらずphpしかできない状態です。
    その場合でも、ymlファイルでRUNを用いてphpが使えるようなコマンドを打てば環境構築はできるのでしょうか?
    まだ、dockerを使っての構築に慣れてない初学者の質問で拙い感じになってしまいすいません💦

    • @KiyotoUniv
      @KiyotoUniv  3 года назад

      PHPでも今回と基本は同じ要領です^^

  • @shunsakai4801
    @shunsakai4801 3 года назад +1

    一点だけ質問失礼します。runの実行をたくさんすると使っていないコンテナが溜まっていくので、--rmオプションをつけるとよいみたいな記事を見たのですが使ってないのは何か理由があるんでしょうか?🤔

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +2

      確かにたくさん溜まっていきますね^^;
      特に深い理由はないです〜。僕の場合は毎回忘れずに付けるのも面倒なので、適当なタイミングで
      docker system prune -a
      とかで一斉にお掃除してます。

  • @秦佳歩
    @秦佳歩 3 года назад +1

    とても分かりやすい動画ありがとうございます!
    1点、質問よろしいでしょうか>

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +1

      dbがホストとして認識されてないようですので、以下を確認してみてください〜。
      1. コマンドの実行は docker-compose.yml ファイルがあるディレクトリで実行してますでしょうか?
      2. docker-compose.yml の services に db は定義されてますでしょうか?
      3. docker-compose.yml の services の web の depends_on: に - db が定義されてますでしょうか?(こちらで web コンテナ内で db と記載すると docker の db コンテナが認識されるようになります)
      もしこちらでダメでしたらエラーメッセージ全文いただけますと幸いです〜。

    • @秦佳歩
      @秦佳歩 3 года назад +1

      @@KiyotoUniv
      ご返信ありがとうございます!!!上記3点とも確認しましたがいずれも正しくできていますがエラーがでてしまいます。
      エラー文下記に記載いたします!
      ```
      $ docker-compose run web rails db:create
      Starting rails_docker_db_1 ... done
      Creating rails_docker_web_run ... done
      Unknown MySQL server host 'db' (-2)
      Couldn't create 'app_development' database. Please check your configuration.
      rails aborted!
      ActiveRecord::ConnectionNotEstablished: Unknown MySQL server host 'db' (-2)
      /app/bin/rails:5:in `'
      /app/bin/spring:10:in `block in '
      /app/bin/spring:7:in `tap'
      /app/bin/spring:7:in `'
      Caused by:
      Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (-2)
      /app/bin/rails:5:in `'
      /app/bin/spring:10:in `block in '
      /app/bin/spring:7:in `tap'
      /app/bin/spring:7:in `'
      Tasks: TOP => db:create
      (See full trace by running task with --trace)
      ```
      お忙しいところ恐縮ですがよろしくお願いいたします!

    • @KiyotoUniv
      @KiyotoUniv  3 года назад +1

      あれ、うまくいかないです?なんでだろ...
      エラーメッセージ拝見する限りdbコンテナが認識されてないようですので、もしかするとdbコンテナが立ち上がってないのかもしれず、下記でdbコンテナに何かエラーが出てないかチェックしてみてください〜。
      # dbコンテナのログを見る
      $ docker-compose logs db
      これでエラーが出ていればそちらの対応をします。エラーが出ていなければまずはdbコンテナが立ち上がるかをチェックしましょう。
      # dbコンテナを立ち上げる
      $ docker-compose up db -d
      # dbコンテナが立ち上がっているかをチェック
      $ docker-compose ps
      # 立ち上がっていなければログを見て対策する
      $ docker-compose logs db
      上記で対策してdbコンテナが立ち上がるようになったら、再度ビルドからやり直してみてください。
      # 全部消す
      $ docker-compose down
      $ docker system prune -a
      # イメージをビルドし直す
      $ docker-compose build
      # コマンドを実行する
      $ docker-compose run web rails db:create

    • @秦佳歩
      @秦佳歩 3 года назад +1

      @@KiyotoUniv
      お忙しい中ご丁寧にありがとうございます!!!
      ログをみるといくつかエラーがでているのでまずはそこを洗ってみようと思います!

  • @ryo7639
    @ryo7639 11 месяцев назад

    windows環境で docker-compose run web rails db:create を実行したら、下記のエラーになった。
    ちょっと調べてみたけど、解決できず沈没しました。
    Caused by:
    Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

  • @futa6238
    @futa6238 2 года назад

    railsまで表示することはできたのですが、mysql2ではなくsqlite3になってしまいました。
    原因や解決方法を教えていただきたいです。

  • @KiyotoUniv
    @KiyotoUniv  3 года назад +1

    あけましておめでとうございます!!今年も動画たくさんお届けしたいと思ってますので、よろしくお願いします!!
    にしても黒のシャツ着たらターミナルと同化しちゃってますね^^;

  • @だちこ-z6k
    @だちこ-z6k 2 года назад

    docker-compose run web rails new . --force --database=mysql を行い、railsの基本ファイル、ディレクトリを作成
    docker-compose buildを行い、イメージの作成
    までは進んだのですが、
    docker-compose run web rails db:createを行った際エラーになってしまいデータベースを作成しようとしたところ以下のエラーが出てきます。
    手順通りに進んでると思うのですが
    Running via Spring preloader in process 21
    Mysql2::Error: Failed to create schema directory 'app_development' (errno: 2 - No such file or directory)
    Couldn't create 'app_development' database. Please check your configuration.
    rake aborted!
    ActiveRecord::StatementInvalid: Mysql2::Error: Failed to create schema directory 'app_development' (errno: 2 - No such file or directory)
    と言われてしまってデータベースが作成できません。。
    これはどこにdirectory 'app_development' がないと言われてしまっているのでしょうか。。

    • @だちこ-z6k
      @だちこ-z6k 2 года назад

      # 全部消す
      $ docker-compose down
      $ docker system prune -a
      # イメージをビルドし直す
      $ docker-compose build
      # コマンドを実行する
      $ docker-compose run web rails db:create
      別のコメントにあった全部消してやり直す方法試したらうまくいきました、お騒がせしました。。

  • @tknk4181
    @tknk4181 3 года назад +1

    docker-compose run web rails new . --force --database=mysql
    上記コマンドでドッカーコンポーズをした時に以下エラー が出て困ってます。
    【エラー内容】
     ERROR [internal] load metadata for docker.io/library/ruby:2.7
     failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exit status 1, out: ``
    docker composeファイルのFROM rubyの記載でエラーが起こっていると思いコードを見返したのですが、内容問題なく解決方法が分かりません。
    以下コマンドも試してみましたが、同様の箇所で同じエラーとなります。
    ・DOCKER_BUILDKIT=1 docker build .
    ・docker compose up -d
    恐れ入りますが、ご教示いただけますと幸いです。

    • @翁長彰人-t4l
      @翁長彰人-t4l 2 года назад

      私も同じ問題が起きています。
      恐れ入りますが、ご教示いただけますと幸いです。