คำถามติดแท็ก dockerfile

Dockerfile คือไฟล์ที่มีคำแนะนำในการสร้างอิมเมจ Docker

5
ไม่สามารถใช้ Docker - ระบบปฏิบัติการอิมเมจ "windows" บนแพลตฟอร์มนี้
ฉันลองสิ่งนี้บนเครื่อง Windows 10 ของฉัน: Dockerfile: From microsoft/nanoserver CMD ["echo", "Hello World"] ปล C:\FSD\Docker\Trial1> docker build -t lea/leatest . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM microsoft/nanoserver latest: Pulling from microsoft/nanoserver bce2fbc256ea: Pulling fs layer 58f68fa0ceda: Pulling fs layer image operating system "windows" cannot be used on …

4
เรียกใช้สคริปต์ใน Dockerfile
ฉันพยายามเรียกใช้สคริปต์ระหว่างกระบวนการสร้างใน Dockerfile แต่ดูเหมือนจะไม่ได้ผล ฉันลองวิธีนั้น: FROM php:7-fpm ADD bootstrap.sh / ENTRYPOINT ["/bin/bash", "/bootstrap.sh"] ด้วยวิธีนี้: FROM php:7-fpm ADD bootstrap.sh / RUN bash -c "/bootstrap.sh" และ bu เรียกใช้คอนเทนเนอร์ที่กำลังทำงานของฉัน: docker exec symfony /bin/bash -c "/bootstrap.sh" ดูเหมือนจะไม่มีอะไรทำงาน คุณรู้วิธีการทำหรือไม่?

7
Docker build ให้“ ไม่สามารถเตรียมบริบทได้: บริบทต้องเป็นไดเร็กทอรี: / Users / tempUser / git / docker / Dockerfile”
ฉันมีสิ่งDockerfileที่ควรจะสร้างUbuntuภาพ แต่เมื่อใดที่ฉันวิ่ง docker build -t ubuntu-test:latest ./Dockerfile แสดงข้อผิดพลาดต่อไปนี้บนคอนโซล ไม่สามารถเตรียมบริบท: บริบทต้องเป็นไดเร็กทอรี: / Users / tempUser / git / docker / Dockerfile ฉันใช้ Mac OsX ฉันพยายามแล้วsudoเช่นกัน ไม่มีอะไรทำงาน


5
นักเทียบท่าทำตาม symlink นอกบริบท
ยังมีอีกคำถาม symlink ของ Docker ฉันมีไฟล์มากมายที่ต้องการคัดลอกไปยัง Docker builds ทั้งหมดของฉัน โครงสร้าง dir ของฉันคือ: parent_dir - common_files - file.txt - dir1 - Dockerfile - symlink -> ../common_files ในตัวอย่างข้างต้นฉันต้องการให้คัดลอก file.txt เมื่อฉันสร้างนักเทียบท่าภายใน dir1 แต่ฉันไม่ต้องการคงสำเนา file.txt ไว้หลายชุด ตามลิงค์นี้สำหรับนักเทียบท่ารุ่น 0.10ต้องสร้างนักเทียบท่า ทำตาม symlinks ภายในรูทของคอนเทนเนอร์สำหรับคำแนะนำในการสร้าง ADD แต่ฉันไม่ได้รับไฟล์หรือไดเรกทอรีดังกล่าวเมื่อฉันสร้างด้วยบรรทัดใดบรรทัดหนึ่งเหล่านี้ใน Dockerfile ของฉัน: ADD symlink /path/dirname หรือ ADD symlink/file.txt /path/file.txt ตัวเลือกการติดตั้งจะไม่แก้ปัญหาให้ฉัน (ข้ามแพลตฟอร์ม ... …

3
สร้างคอนเทนเนอร์ Docker ใหม่เมื่อมีการเปลี่ยนแปลงไฟล์
สำหรับการเรียกใช้แอปพลิเคชัน ASP.NET Core ฉันได้สร้าง Dockerfile ซึ่งสร้างแอปพลิเคชันและคัดลอกซอร์สโค้ดในคอนเทนเนอร์ซึ่ง Git ดึงข้อมูลโดยใช้ Jenkins ดังนั้นในพื้นที่ทำงานของฉันฉันทำสิ่งต่อไปนี้ใน dockerfile: WORKDIR /app COPY src src ในขณะที่ Jenkins อัปเดตไฟล์บนโฮสต์ของฉันอย่างถูกต้องด้วย Git Docker จะไม่ใช้สิ่งนี้กับรูปภาพของฉัน สคริปต์พื้นฐานของฉันสำหรับการสร้าง: #!/bin/bash imageName=xx:my-image containerName=my-container docker build -t $imageName -f Dockerfile . containerRunning=$(docker inspect --format="{{ .State.Running }}" $containerName 2> /dev/null) if [ "$containerRunning" == "true" ]; then docker stop …


9
วิธีการตั้งค่านามแฝง bash สำหรับคอนเทนเนอร์นักเทียบท่าใน Dockerfile
ฉันยังใหม่กับนักเทียบท่า ฉันพบว่าเราสามารถตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้คำสั่ง ENV ใน Dockerfile แต่หนึ่งจะตั้งค่านามแฝง bash สำหรับคำสั่งแบบยาวใน Dockerfile ได้อย่างไร?

5
วิธีแคชคำแนะนำในการติดตั้ง RUN npm เมื่อนักเทียบท่าสร้าง Dockerfile
ฉันกำลังพัฒนาแบ็กเอนด์โหนดสำหรับแอปพลิเคชันของฉัน เมื่อเทียบท่า ( docker build .) ระยะที่ยาวที่สุดคือRUN npm install. RUN npm installการเรียนการสอนการทำงานเกี่ยวกับการเปลี่ยนแปลงรหัสเซิร์ฟเวอร์ขนาดเล็กทุกที่ขัดขวางการผลิตผ่านการเพิ่มขึ้นเวลาในการสร้าง ฉันพบว่าการรัน npm ติดตั้งโดยที่โค้ดของแอปพลิเคชันอยู่และการเพิ่ม node_modules ลงในคอนเทนเนอร์ด้วยคำสั่ง ADD ช่วยแก้ปัญหานี้ได้ แต่ก็ยังห่างไกลจากแนวทางปฏิบัติที่ดีที่สุด มันเป็นการทำลายความคิดทั้งหมดของการเทียบท่าและทำให้คอนเทนเนอร์มีน้ำหนักมากขึ้น วิธีแก้ปัญหาอื่น ๆ ?

12
วิธีการติดตั้งโลคัลวอลุ่มในเครื่องเทียบท่า
ฉันพยายามใช้ Docker-machine กับนักเทียบท่าเขียน ไฟล์ docker-compose.yml มีนิยามดังนี้: web: build: . command: ./run_web.sh volumes: - .:/app ports: - "8000:8000" links: - db:db - rabbitmq:rabbit - redis:redis เมื่อการรันdocker-compose up -dทั้งหมดเป็นไปด้วยดีจนกระทั่งพยายามรันคำสั่งและเกิดข้อผิดพลาด: ไม่สามารถเริ่มคอนเทนเนอร์ b58e2dfa503b696417c1c3f49e2714086d4e9999bd71915a53502cb6ef43936d: [8] ข้อผิดพลาดของระบบ: exec: "./run_web.sh": stat ./run_web.sh: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว โลคัลวอลุ่มไม่ได้ต่อเข้ากับเครื่องระยะไกล อะไรคือกลยุทธ์ที่แนะนำในการเชื่อมต่อไดรฟ์ข้อมูลในเครื่องด้วยรหัสของ webapps

3
การจัดการ Dockerfile แบบไดนามิกสำหรับผู้เช่าที่แตกต่างกันในการใช้งานไปป์ไลน์ CI / CD
ฉันกำลังพยายามใช้ CI / CD ไปป์ไลน์สำหรับโครงการของฉันโดยใช้ Docker, Kubernetes และ Jenkins แอปพลิเคชันของฉันเป็นแอปพลิเคชันหลายผู้เช่าที่แอปพลิเคชันฐานข้อมูลตัวแปรทุกอย่างแตกต่างกันสำหรับผู้เช่ารายอื่น แอพลิเคชันกลยุทธ์ เมื่อฉันสร้างภาพนักเทียบท่าฉันกำลังใช้ Dockerfile และฉันเก็บ Dockerfile ไว้ในที่เก็บรหัส SVN ของฉัน สำหรับผู้เช่าทุกคนที่เก็บรหัสจะเหมือนกัน เมื่อฉันสร้างภาพในเวลานั้นฉันต้องสร้างภาพที่แตกต่างกันสำหรับผู้เช่าที่แตกต่างกัน การใช้งาน Dockerfile ในไฟล์นักเทียบท่าของฉันฉันกำลังเพิ่มจุดเข้าใช้งานดังนี้: ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=tenant1config" , "TestProject.war"] หากฉันต้องการสร้างภาพนักเทียบท่าสำหรับผู้เช่ารายอื่นต้องเพิ่ม -Dspring.profiles.active=tenant2config ดังนั้นจุดเข้าใช้งานใน Dockerfile จึงเป็นแบบไดนามิก ความสับสนของฉัน สำหรับการจัดการคำสั่ง entry point ภายใน Dockerfile เป็นไปได้ไหม? หรือฉันจำเป็นต้องเพิ่ม Dockerfile อื่นสำหรับผู้เช่ารายอื่นหรือไม่? และจำเป็นต้องเรียกใช้คำสั่งสร้างนักเทียบท่าแยกต่างหากสำหรับผู้เช่าแยกกันหรือไม่ ฉันจะหาวิธีมาตรฐานที่ดีในการนำปัญหานี้ไปใช้อย่างไร

2
Docker & Laravel: configure: error: ข้อกำหนดของแพคเกจ (oniguruma) ไม่เป็นไปตาม
ทุกคนสามารถช่วยฉันด้วยปัญหานี้ เมื่อฉันพยายามสร้างภาพนักเทียบท่าจาก dockerfile สำหรับแอปพลิเคชัน laravel ฉันได้รับข้อผิดพลาดนี้: กำลังตรวจสอบสำหรับ oniguruma ... ไม่มีการกำหนดค่า: ข้อผิดพลาด: ไม่ตรงตามข้อกำหนดของแพ็คเกจ (oniguruma): No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the …

3
standard_init_linux.go: 211: กระบวนการผู้ใช้ exec ทำให้เกิด "ข้อผิดพลาดรูปแบบ exec"
ฉันกำลังสร้าง Dockerfile สำหรับสคริปต์ไพ ธ อนซึ่งจะทำงานในระบบ minikube windows 10 ด้านล่างคือ Dockerfile ของฉัน สร้างนักเทียบท่าโดยใช้คำสั่งด้านล่าง docker build -t python-helloworld . และโหลดใน minikube docker อสูร docker save python-helloworld | (eval $(minikube docker-env) && docker load) ไฟล์ Docker FROM python:3.7-alpine #add user group and ass user to that group RUN addgroup -S appgroup && adduser …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.