Score:0

E: ไม่พบแพ็คเกจ unixODBC-dev

ธง dk
E: ไม่พบแพ็คเกจ unixODBC-dev

ข้อผิดพลาด: บริการ 'php' ล้มเหลวในการสร้าง: คำสั่ง '/bin/sh -c apt-get update && apt-get install -y unixODBC-dev && rm -rf /var/lib/apt/lists/*' ส่งคืน รหัสที่ไม่ใช่ศูนย์: 100

ฉันได้รับสิ่งนี้แม้ว่าฉันจะอัปเดต apt-get แล้วก็ตาม นี่เป็นเรื่องปกติหรือไม่?

นี่คือ Dockerfile ของฉัน:

จาก george/php:7.4-fpm

RUN apt-get --allow-releaseinfo-change update
RUN apt-get update && apt-get install -y \
        freetds-bin \
        freetds-dev \
        freetds-common 


RUN apt-get update && apt-get install -y unixODBC-dev && rm -rf /var/lib/apt/lists/*
ชุด RUN -x \
&& ซีดี /usr/src/php/ext/odbc \
&& phpize \
&& sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' กำหนดค่า \
&& ./configure --with-unixODBC=shared,/usr \
&& นักเทียบท่า-php-ext-install odbc
 
RUN นักเทียบท่า-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr
RUN docker-php-ext-configure pdo_dblib --with-libdir=/lib/x86_64-linux-gnu

RUN นักเทียบท่า-php-ext-install pdo_odbc
RUN docker-php-ext-install pdo_dblib
RUN นักเทียบท่า-php-ext-install pcntl
RUN docker-php-ext-enable pdo_odbc
RUN docker-php-ext-enable pdo_dblib
RUN docker-php-ext-enable pcntl

ฉันใช้กล่องตาม Debian:

PRETTY_NAME="Debian GNU/Linux 10 (บัสเตอร์)"
NAME="เดเบียน GNU/ลินุกซ์"
VERSION_ID="10"
VERSION="10 (บัสเตอร์)"
VERSION_CODENAME=บัสเตอร์
ID=เดเบียน
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

พยายามทำความเข้าใจว่าเหตุใดการติดตั้ง ODBC จึงยาก

cn flag
ฉันได้เรียนรู้บทเรียนจากไฟดับเมื่อไม่นานมานี้ ฉันกำลังติดตั้งแพ็คเกจจาก repo linux ของ alpine และ repo ก็หยุดทำงานซึ่งทำให้คอนเทนเนอร์ของฉันไม่สามารถรีสตาร์ทได้ หากคุณติดตั้งเนื้อหาจำนวนมากลงในคอนเทนเนอร์ คุณควร "docker ยอมรับ" การเปลี่ยนแปลงของคุณจากคอนเทนเนอร์เป็นอิมเมจใหม่ แล้วจึง "docker push" เพื่อพุชอิมเมจใหม่ไปยัง repo ของคุณ วิธีที่คุณตั้งค่าตอนนี้ หาก debian repo หรือ docker-php-ext-install repo ล่ม คุณจะมีปัญหาในการรีสตาร์ท
cn flag
ฉันไม่แน่ใจว่าเหตุใด repo ของคุณจึงไม่มีแพ็คเกจที่จำเป็น แต่ฉันพบสำเนาที่นี่: https://packages.debian.org/sid/amd64/unixodbc-dev/download
dk flag
ฉันควรใช้คำสั่งใดและมีวิธีพิสูจน์คนโง่ในการติดตั้งแพ็คเกจทั้งหมดที่ฉันต้องการหรือไม่
cn flag
ฉันไม่แน่ใจว่าจะทำให้ไดรเวอร์ odbc ทำงานอย่างไร ฉันค้นหาไปรอบๆ และพบคำแนะนำในการติดตั้งไดรเวอร์ MS odbc แต่ฉันไม่เคยใช้เซิร์ฟเวอร์ SQL และไม่สามารถแสดงความคิดเห็นจากประสบการณ์ว่าจะแก้ไขปัญหาของคุณได้อย่างไร Google ดูเหมือนว่าคนอื่นมีปัญหานั้น สำหรับวิธีการตั้งค่าทุกอย่าง ฉันจะใช้ไฟล์ docker ที่คุณกำลังทำงานอยู่ เรียกใช้คอนเทนเนอร์ และเข้าสู่ระบบ (docker exec -it containernumber bash) จากนั้นติดตั้งจากภายในคอนเทนเนอร์ คุณสามารถตรวจสอบแพ็กเกจ wget/curl ได้หากจำเป็น จากนั้น "นักเทียบท่ายอมรับชื่ออิมเมจชื่อคอนเทนเนอร์" >>
cn flag
จากนั้นคุณจะเห็นชื่อภาพเมื่อคุณเรียกใช้ "docker image ls" จากนั้นคุณควรมี repo ส่วนตัวบางอย่าง การลงทะเบียนนักเทียบท่าดูไม่ยากที่จะติดตั้ง แต่บริษัทของคุณอาจมีอยู่แล้ว จากนั้นคุณ docker พุชไปยัง repo ในเครื่องของคุณโดยใช้ไวยากรณ์ใหม่ เช่น "docker push imagename reposerver:8081/foobar-api/imagename:latest" หรืออะไรทำนองนั้น มีเอกสารอยู่ที่นี่: https://docs.docker.com/engine/reference/commandline/push/ หวังว่านั่นคือสิ่งที่คุณหมายถึง! ตรวจสอบให้แน่ใจว่าคุณได้ทดสอบอิมเมจที่คุณสร้างเพื่อให้แน่ใจว่าโปรแกรมหลักสำหรับคอนเทนเนอร์ของคุณยังคงเริ่มต้นอย่างถูกต้อง
cn flag
เมื่อแพ็คเกจและการตั้งค่า php ของคุณและทุกอย่างถูกรวมเข้ากับรูปภาพแล้วคุณควรตั้งค่าอย่างถาวร ปัญหาหลักในการทำเช่นนั้น (และสาเหตุที่คุณอาจต้องการติดตั้งในไฟล์นักเทียบท่า) คือทำให้ยากต่อการสร้างคอนเทนเนอร์นักเทียบท่าโดยอัตโนมัติ คุณสามารถย้อนกลับและเปลี่ยนขั้นตอนการติดตั้งของคุณ รวมถึงการคอมมิตคอนเทนเนอร์กับอิมเมจ ในรูทีนการสร้าง/การเผยแพร่คอนเทนเนอร์ของคุณได้ตลอดเวลา
cn flag
อย่างไรก็ตาม นี่เป็นเพียงคำแนะนำแบบสุ่ม อย่าสนใจฉันเลย :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา