いつも勉強させていただいております。 % 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をインストールしていいないのですがそれと関係ありますか?
@@KiyotoUniv とても勉強になる動画ありがとうございます! 同じく、Dockerfileの作成について質問させていただきたいですがdocker-compose run web rails db:createした後、このrails db:createはDockerfileには書かなくて良いのでしょうか? お手すきの際教えていただけたら幸いです!
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)
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' がないと言われてしまっているのでしょうか。。
# 全部消す $ docker-compose down $ docker system prune -a # イメージをビルドし直す $ docker-compose build # コマンドを実行する $ docker-compose run web rails db:create 別のコメントにあった全部消してやり直す方法試したらうまくいきました、お騒がせしました。。
あけましておめでとうございます!!新年早々ターミナルと同化してますね!
フロントとバックエンドを1つのコンテナに入れて運用してしまっているので、
次のプロジェクトはコンテナを分けて運用できるようにしっかり勉強したいです。
今回CI/CDまで解説くださるというのでとても楽しみにしてます。
独学エンジニアも毎週とても楽しみにしています。
是非ぜひ分けてみてください!Dockerは 1プロセス毎にコンテナを分けるのがベストプラクティスです^^
RUclipsも独学エンジニアも見てくださってありがとうございます!今年もよろしくお願いします!
イメージ作成時に、エラーが発生して行き詰まってしまった人へ
原因: rubyGemsのバージョンが古く、インストールするgemの要求水準を満たしていない
解決方法: FROM ruby:2.7 -> FROM ruby:3.3に変更(例: 3.3 最新の安定バージョンにする)
これでとりあえず、環境構築出来ました。
docker-compose 使ってたのに全然知らないこといっぱいありめっちゃ勉強になりました。
あと、関係ないですけどエンジニアを考えている友人にもこのチャンネル紹介しておきました!
おぉぉぉありがとうございます!!めちゃくちゃ嬉しいです!!
動画大変参考にさせていただいたいます!
質問なのですが、 きよとさんがアップされている【Docker超入門】の1~5を拝見し、実際にlaravelでアプリを作りました。
もう1つ別のアプリをlaravelで作成しようとした場合、環境構築を一から行う必要があるのでしょうか。
初心者質問で申し訳ありません。
おぉご作成されたのですね!素敵です^^
別のアプリを作成する場合は別のディレクトリに再度新規のDockerfileを用意しますね。プロジェクトごとにDockerfileもそれぞれ用意することで、プロジェクトごとに独立して環境を用意できます(Dockerfileはコピペでも大丈夫です)。
いつも勉強させていただいております。
% 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をインストールしていいないのですがそれと関係ありますか?
dockerfileのapt-key add辺りのコマンドでエラーが出ました。非推奨になったみたいですね
コマンドの意味が分からなくて調べたんですけど、通信を暗号化してやり取りするための鍵を保存しているんですよね?
パッケージのダウンロードでは見られても問題ないのでは?と思うんですけど、実際なくても問題ないのですか?
いつも動画参考にさせていただいています。
ありがとうございます。
動画概要にてM1 macにおけるMySQLの動作の追記をされていましたが、
2022/8/15(Mon)現在問題なく動作することを確認しましたのでご報告いたします。
docker-composeのみではできないのでしょうか??
dockerfileも使う理由を知りたいです
できなくはないのですが、ライブラリのインストール等を行ったりするとごちゃごちゃするので、個別にDockerfileに分けるのが通例ですー
@@KiyotoUniv
ご返信ありがとうございます
そうなんですね!
Dockerfileと Docker composeで出来ることは同じでなのですかね!ファイルが2つに分けられるという点以外に理由はありますか?
また、HerokuへのデプロイなどもDockerFileのみで可能ですか?
いつも勉強させていただいております。
自分はPHPでの開発をする予定なのですが、本番サーバーとして契約しているエックスサーバーではroot権限がないため、dockerが入れれないと知りました。
その様な場合、ローカル環境と本番環境をdockerで同じにすることは難しいかと思うのですが、ローカル環境をどの様にするのがスムーズでしょうか?
OSやDBなどの種類とバージョンを出来る限り揃えるのが良いかと思います!
今後自分でDockerfileを作成していくようになってきた時に、DockerfileのRUNに記述されているlibraryの更新等の内容も必要に応じて自分で判断していかなくてはならないと思うのですが、RUNに記述するのに必要なコマンドはどのように判断したら良いのでしょうか?
講義中にやってたプロセスと同じで、コンテナ内に入ってコンテナでコマンドを実行し、動作したコマンドをDockerfileにも記載すれば良いです^^実行するコマンド自体は公式ドキュメントやブログ記事等を都度参照します。
@@KiyotoUniv ありがとうございます!
@@KiyotoUniv とても勉強になる動画ありがとうございます!
同じく、Dockerfileの作成について質問させていただきたいですがdocker-compose run web rails db:createした後、このrails db:createはDockerfileには書かなくて良いのでしょうか?
お手すきの際教えていただけたら幸いです!
@@GAME4967 rails db:createは、railsアプリケーションで使用するためのデータベースをMySQL上に作成するコマンドです。これを実行することでMySQLコンテナがマウントしているvolumeにrails用のデータベースが作成されます。これ以降はMySQLコンテナが立ち上がるたびに同じvolumeをマウントし同じデータベースを読み込むので、railsアプリケーションが書き込んだデータを消さずに継続して再利用が出来ます。つまり、データベースは2度と作成する必要がありません・・・と言うか、逆に再作成をしたらそのたびにデータが初期化されてしまいます。なので、このコマンドを実行するのは最初の一回だけで良いのです。
楽しく拝見させていただいてます!
今回はrubyでの構築だと思うのですが、まだrubyは学んでおらずphpしかできない状態です。
その場合でも、ymlファイルでRUNを用いてphpが使えるようなコマンドを打てば環境構築はできるのでしょうか?
まだ、dockerを使っての構築に慣れてない初学者の質問で拙い感じになってしまいすいません💦
PHPでも今回と基本は同じ要領です^^
一点だけ質問失礼します。runの実行をたくさんすると使っていないコンテナが溜まっていくので、--rmオプションをつけるとよいみたいな記事を見たのですが使ってないのは何か理由があるんでしょうか?🤔
確かにたくさん溜まっていきますね^^;
特に深い理由はないです〜。僕の場合は毎回忘れずに付けるのも面倒なので、適当なタイミングで
docker system prune -a
とかで一斉にお掃除してます。
とても分かりやすい動画ありがとうございます!
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 コンテナが認識されるようになります)
もしこちらでダメでしたらエラーメッセージ全文いただけますと幸いです〜。
@@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)
```
お忙しいところ恐縮ですがよろしくお願いいたします!
あれ、うまくいかないです?なんでだろ...
エラーメッセージ拝見する限り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
@@KiyotoUniv
お忙しい中ご丁寧にありがとうございます!!!
ログをみるといくつかエラーがでているのでまずはそこを洗ってみようと思います!
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)
railsまで表示することはできたのですが、mysql2ではなくsqlite3になってしまいました。
原因や解決方法を教えていただきたいです。
あけましておめでとうございます!!今年も動画たくさんお届けしたいと思ってますので、よろしくお願いします!!
にしても黒のシャツ着たらターミナルと同化しちゃってますね^^;
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' がないと言われてしまっているのでしょうか。。
# 全部消す
$ docker-compose down
$ docker system prune -a
# イメージをビルドし直す
$ docker-compose build
# コマンドを実行する
$ docker-compose run web rails db:create
別のコメントにあった全部消してやり直す方法試したらうまくいきました、お騒がせしました。。
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
恐れ入りますが、ご教示いただけますと幸いです。
私も同じ問題が起きています。
恐れ入りますが、ご教示いただけますと幸いです。