ฉันต้องการเริ่มบริการด้วย Docker-compose และทำให้คอนเทนเนอร์ทำงานต่อไปเพื่อที่ฉันจะได้รับที่อยู่ IP ผ่าน 'นักเทียบท่าตรวจสอบ' อย่างไรก็ตามคอนเทนเนอร์มักจะออกทันทีหลังจากเริ่มต้นระบบ
ฉันพยายามเพิ่ม "command: [" sleep "," 60 "]" และอื่น ๆ ใน docker-compose.yml แต่เมื่อใดก็ตามที่ฉันเพิ่มบรรทัดด้วย "command: ... " ฉันไม่สามารถเรียก "docker-compose up" ได้ เนื่องจากฉันจะได้รับข้อความ "ไม่สามารถเริ่มคอนเทนเนอร์ ..... ข้อผิดพลาดของระบบ: อักขระที่ไม่ถูกต้อง 'k' กำลังมองหาจุดเริ่มต้นของค่า"
ฉันยังลองเพิ่ม "CMD sleep 60" และไม่มีอะไรใน Dockerfile แต่ดูเหมือนว่าคำสั่งเหล่านี้จะไม่ถูกเรียกใช้
มีวิธีง่ายๆในการทำให้คอนเทนเนอร์คงอยู่หรือแก้ปัญหาอย่างใดอย่างหนึ่งของฉันได้หรือไม่?
แก้ไข: นี่คือไฟล์เขียนที่ฉันต้องการเรียกใช้:
version: '2'
services:
my-test:
image: ubuntu
command: bash -c "while true; do echo hello; sleep 2; done"
มันใช้งานได้ดีถ้าฉันเริ่มสิ่งนี้ด้วยนักเทียบท่าเขียนภายใต้ OS X แต่ถ้าฉันลองแบบเดียวกันภายใต้ Ubuntu 16.04 มันทำให้ฉันมีข้อความแสดงข้อผิดพลาดข้างต้น
หากฉันลองใช้วิธีนี้กับ Dockerfile Dockerfile จะมีลักษณะดังนี้:
FROM ubuntu:latest
CMD ["sleep", "60"]
ซึ่งดูเหมือนไม่ได้ทำอะไร
แก้ไข 2: ฉันต้องแก้ไขตัวเองปรากฎว่าเป็นปัญหาเดียวกันกับ Dockerfile และ docker-compose.yml: ทุกครั้งที่ฉันเพิ่ม "CMD ... " ลงใน Dockerfile หรือเพิ่ม "command ... " ลงใน ไฟล์เขียนฉันได้รับข้อผิดพลาดด้านบนด้วยอักขระที่ไม่ถูกต้อง ถ้าฉันลบทั้งสองคำสั่งมันก็ทำงานได้อย่างไม่มีที่ติ