การกำหนดค่าอิมเมจ Docker


1

ฉันพยายามสร้าง Dockerfile แต่หลังจากดำเนินการฉันได้รับข้อผิดพลาดนี้:

Sending build context to Docker daemon  31.08MB
Step 1/5 : FROM davidrazd/discord-node-10
 ---> 0ad384ff6003
Step 2/5 : RUN apt-get update
 ---> Running in 9fb4313d8011
Reading package lists...
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
The command '/bin/sh -c apt-get update' returned a non-zero code: 100

ฉันยังพยายามใส่sudoใน dockerfile เพื่อให้แน่ใจว่าฉันมีสิทธิ์เข้าถึงแบบเต็มในฐานะรูท

Dockerfile:

# Start writing your Dockerfile easily
FROM davidrazd/discord-node-10

RUN sudo apt-get update
RUN sudo apt-get install -y python-pip
RUN sudo install --upgrade pip

คำตอบ:


2

ภาพที่คุณนำเข้ามีข้อกำหนดของผู้ใช้:

USER container

apt-get updateและapt-get installคำสั่งที่จำเป็นต้องเข้าถึงราก ภายในตัวสร้างนักเทียบท่าคุณจะได้รับสิทธิ์เข้าถึงรูทโดยการรันคำสั่งคอนเทนเนอร์ของคุณในฐานะรูทแทนที่จะดำเนินการกับ sudo ดังนั้น dockerfile ของคุณจะมีลักษณะดังนี้:

# Start writing your Dockerfile easily
FROM davidrazd/discord-node-10
USER root
RUN apt-get update \
 && apt-get install -y python-pip \
 && install --upgrade pip
USER container

ฉันขอแนะนำให้อ่านต่อไปนี้ก่อนที่จะเขียน Dockerfiles ของคุณต่อเนื่องจากมีปัญหาอื่น ๆ ที่คุณต้องการแก้ไขด้วยคำสั่ง apt-get (คำสั่ง chaining การลบอินพุตจาก config ไม่ใช่การติดตั้งแพ็กเกจที่แนะนำและทำความสะอาดหลังจากนั้น คำสั่งติดตั้ง): https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.