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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

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

Q&A

解決済

1回答

1275閲覧

Swarm上でMaster/Slaveサービスを実行したい

raychan

総合スコア10

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

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

0グッド

0クリップ

投稿2020/05/13 08:27

編集2020/05/14 07:56

前提・実現したいこと

「Docker/K8S実践コンテナ開発入門」の参考書と以下のサイトを参考にしながら、todoAPI Service構築を行おうとしています。

参考サイト:
https://wand-ta.hatenablog.com/entry/2019/02/11/225129
https://lawrence-twin.hateblo.jp/entry/2020/05/02/230643

イメージを作成し、registryにpushするところまではできたのですが、
Swarmによるデプロイをすると以下のエラーが発生してしまします。

ymlファイルが間違っているのではと思い、修正してみたのですがデプロイすることができませんでした。

どなたがデプロイできるようご教授いただけませんでしょうか?

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

open /stack/todo-mysql.yml: no such file or directory

該当のソースコード

todo-mysql.yml

version: "3" services: master: image: registry:5000/ch04/tododb:latest deploy: replicas: 1 placement: constraints: [node.role != manager] environment: MYSQL_ROOT_PASSWORD: gihyo MYSQL_DATABASE: tododb MYSQL_USER: gihyo MYSQL_PASSWORD: gihyo MYSQL_MASTER: "true" networks: - todoapp slave: image: registry:5000/ch04/tododb:latest deploy: replicas: 2 placement: constraints: [node.role != manager] depends_on: - master environment: MYSQL_MASTER_HOST: master MYSQL_DATABASE: tododb MYSQL_USER: gihyo MYSQL_PASSWORD: gihyo MYSQL_ROOT_PASSWORD: gihyo MYSQL_REPL_USER: repl MYSQL_REPL_PASSWORD: gihyo networks: - todoapp networks: todoapp: external: true

docker

1docker container exec -it manager \ 2docker stack deploy -c /stack/todo-mysql.yml todo_mysql

試したこと

1.versionが最新ではないといけないというサイトを見つけたので、versionを3.8にしましたが、上手くいきませんでした。

2.最初からやり直してみましたが、また同じ結果になりました。

3.以下のサイトに同じエラーが出ており、解決方法として、ymlファイルを修正したと書いてありましたが、上手く修正できませんでした。
https://lawrence-twin.hateblo.jp/entry/2020/05/05/234129

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

バージョン
MacOS Catalina:10.15.1
Docker Version: 19.03.5
API version:1.40

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

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

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

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

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

guest

回答1

0

ベストアンサー

open /stack/todo-mysql.yml: no such file or directory

docker stack コマンドで指定しているコンフィグレーションファイル /stack/todo-mysql.yml を読もうとして失敗しています。「そんなファイルはありません」と言っています。

原因としては

  • 実際に/stack/todo-mysql.ymというファイルがない
  • /stack/todo-mysql.ym やそのディレクトリに対する検索権限や参照権限がない

ということが考えられます。OSなどの環境が書かれていないので、なんとも言えませんが、通常 /stack みたいな名前の最上位ディレクトリはありません。相対パスにすべきところを絶対パスにされているのではありませんか?

docker stack deploy -c ./stack/todo-mysql.yml todo_mysql

をお試しください。

投稿2020/05/13 11:41

編集2020/05/13 11:43
mit0223

総合スコア3401

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

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

raychan

2020/05/14 08:15

mit0223さん、私の拙く、初歩的な質問にも関わらず、丁寧にご教授いただきありがとうございます。 エラーの原因を確認したり、試してみたところ、デプロイすることができました! ご教授いただいた回答を拝見し、初歩的な知識が足りていないことを改めて感じました。 この度は、ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問