質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1461閲覧

docker-compose runができない

ponpokotanuki

総合スコア2

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/08/27 03:51

前提・実現したいこと

docekrを使いrailsアプリを作成したい。

docker-compose run web rails new . --force --database=mysql

を実行したいが、エラーになる。

発生している問題・エラーメッセージ

docker-compose run web rails new . --force --database=mysql Building web Traceback (most recent call last): File "compose/cli/main.py", line 81, in main File "compose/cli/main.py", line 203, in perform_command File "compose/metrics/decorator.py", line 18, in wrapper File "compose/cli/main.py", line 970, in run File "compose/cli/main.py", line 1434, in run_one_off_container File "compose/project.py", line 664, in up File "compose/service.py", line 364, in ensure_image_exists File "compose/service.py", line 1133, in build File "compose/service.py", line 1841, in build compose.service.BuildError: (<Service: web>, {'message': 'dockerfile parse error line 3: unknown instruction: |'}) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "docker-compose", line 3, in <module> File "compose/cli/main.py", line 92, in main TypeError: can only concatenate str (not "dict") to str [18950] Failed to execute script docker-compose

該当のソースコード

docker-file

FROM ruby:2.7 RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update -qq \ && apt-get install -y nodejs yarn WORKDIR /app COPY ./src /app RUN bundle config --local set path 'vendor/bundle' \ && bundle install

docker-compose

version: '3' services: db: image: mysql:8.0 command: --default-authentication-plugin=mysql_native_password volumes: - ./src/db/mysql_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - ./src:/app ports: - "3000:3000" depends_on: - db

Gemfile

1source 'https://rubygems.org' 2 3gem 'rails', '~> 6.1.0'

試したこと

・エンコーディングがUFT8になっていると確認
・スペルミス、バックスラッシュ抜けのチェック

補足情報(FW/ツールのバージョンなど)

https://www.youtube.com/watch?v=ltDdZAJli8c の通りにやっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

'message': 'dockerfile parse error line 3: unknown instruction: |'
のメッセージの通り、 Dockerfileの文法エラーです。

Dockerfile

1FROM ruby:2.7 2RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ 3 && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ 4 && apt-get update -qq \ 5 && apt-get install -y nodejs yarn 6WORKDIR /app 7COPY ./src /app 8RUN bundle config --local set path 'vendor/bundle' \ 9 && bundle install

の様に修正してみてください。

投稿2021/08/27 03:57

Eggpan

総合スコア2727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponpokotanuki

2021/08/27 08:07

仰る通りにやって解決しました。 文法エラーのメッセージが表示されているとは分かっていたのですが、他の原因ではないかと疑ってしまったのが解決できなかった原因でした。 次からはちゃんとエラーメッセージ通りに修正方法を考えていきます。 ありがとうございました!
Eggpan

2021/08/27 09:22

いまさらながら動画を確認してみたのですが、この画面だと行が別れているようにみえますね・・。 エディタに行番号がついているので、一応よく見ればわかります。 実際は1行が折り返し表示されていた部分を、ponpokotanukiさんは複数行に分けて書いてしまい、別コマンドと解釈されてしまったのがエラー原因になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問