عامل الميناء-يؤلف أي خدمة من هذا القبيل: مياب

لقد قمت بتشغيل صورة مع: 'عامل الميناء-يؤلف'

مع' عامل الميناء بس ' أحصل:

CREATED             STATUS              PORTS                    NAMES55e1fd18acf1        simpleappnodedocker_web   "node app.js"            6 seconds ago       Up 6 seconds        0.0.0.0:9000->3000/tcp   myapp9879ff20e241        postgres:9.6              "docker-entrypoint..."   36 hours ago        Up 36 hours         0.0.0.0:5432->5432/tcp   nd-db

أحاول تشغيل باش للدخول إلى قذيفة ، ولكن أحصل على خطأ ، وكيفية حل هذا ، وأنا أفكر أنا أفعل شيئا خاطئا.

$docker-compose run myapp /bin/bash   ERROR: No such service: myapp

عامل الميناء-يؤلف.يمل:

version: '2'services:  web:    container_name: myapp    build: .    command: node app.js    ports:      - "9000:3000"

أعتقد أنك حصلت على علاقة docker و docker-compose خطأ:

docker-compose هو التفاف حول docker. للقيام بعملها docker-compose يحتاج التكوين الخاص به: docker-compose.yaml

الغزل المثال الخاص بك أبعد من ذلك:

إنشاء عامل الميناء-يؤلف.يمل:

version: '2'services:  web:    container_name: myapp    build: .    command: node app.js    ports:      - "9000:3000"

استخدام docker-compose لبدء الحاوية وتشغيل أمر في الحاوية قيد التشغيل:

docker-compose updocker-compose exec web /bin/bash

docker-compose يستخدم اسم الخدمة - في حالتك هذا هو web - بينما docker يستخدم اسم الحاوية-في هذه الحالة myapp.

لذلك لتشغيل /bin/bash من خلال docker، يمكنك استخدام ما يلي:

docker exec -ti myapp /bin/bash

هل يمكن إزالة container_name من عند docker-compose.yaml، ثم سيتم تسمية الحاوية تلقائيا بواسطة docker-compose - على غرار الخدمة ، ولكن مسبوقة مع اسم docker-compose كومة (اسم المجلد حيث docker-compose.yaml يقع).

الجواب الآخر هو الصحيح ولكن بطريقة ما كان مربكا بعض الشيء في تفسيره الواسع على &مثل;علاقة عامل الميناء وعامل الميناء يؤلف&مثل;.

الشيء الرئيسي للتخلص من الخطأ في السؤال هو أن تفعل ما يقوله الخطأ: & مثل; خطأ: لا توجد مثل هذه الخدمة: & مثل;, وبالتالي, أنت يجب اختر خدمة موجودة في ملف الإنشاء الخاص بك ، و لا اسم الحاوية. في المثال ، هو web، وليس myapp.

في حالتك ، لا تقم بتشغيل

docker-compose run --rm myapp bash

لكن اركض

docker-compose run --rm web bash

تأكد أيضا من تشغيل الأمر في نفس المجلد من إنشاء عامل الإرساء.يمل ، وإلا سوف تحصل على نفس رسالة الخطأ ولكن الجواب فيليب أعلاه لن تعمل.

أنت بالتأكيد تفعل شيئا خاطئا. لمساعدتك ، أود أن أعرف ما فعلته وكيف فعلت ذلك. الرجاء نشر عامل الميناء الخاص بك-يؤلف.يمل واستدعاء كامل لجميع خطواتك.

انها تعمل مع: عامل الميناء إكسيك-إيت مياب / بن/باش

@فيليب-زيانكلي-ستوكمان لديك تكوين يمل ، ولكن حقا بحاجة إلى استخدام عامل الميناء يؤلف المدى ، إذا كنت يمكن أن تفعل ذلك مع عامل الميناء تشغيل?

لكنها أداة رائعة للحصول على التكوين في الريبو جيت على سبيل المثال

وبالتالي, أين هو الخطأ?

آه ، الآن أحصل عليه ، على ما أعتقد. سأقوم بنشر إجابة.