Puncte:0

E: Imposibil de localizat pachetul unixODBC-dev

drapel dk
E: Imposibil de localizat pachetul unixODBC-dev

EROARE: Serviciul „php” a eșuat: Comanda „/bin/sh -c apt-get update && apt-get install -y unixODBC-dev && rm -rf /var/lib/apt/lists/*” a returnat un cod diferit de zero: 100

Primesc asta, chiar dacă am făcut o actualizare apt-get. Este normal?

Acesta este fișierul meu Docker:

DE LA george/php:7,4-fpm

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


RUN apt-get update && apt-get install -y unixODBC-dev && rm -rf /var/lib/apt/lists/*
RUN setați -x \
&& cd /usr/src/php/ext/odbc \
&& phpize \
&& sed -ri 's@^ *test +"\$PHP_.*" *= *"nu" *&& *PHP_.*=da *$@#&@g' configura \
&& ./configure --with-unixODBC=shared,/usr \
&& docker-php-ext-install odbc
 
RUN docker-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 docker-php-ext-install pdo_odbc
RUN docker-php-ext-install pdo_dblib
RUN docker-php-ext-install pcntl
RUN docker-php-ext-enable pdo_odbc
RUN docker-php-ext-enable pdo_dblib
RUN docker-php-ext-enable pcntl

Folosesc o cutie bazată pe Debian:

PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Încerc să înțeleg de ce instalarea ODBC este atât de grea.

drapel cn
Am învățat o lecție într-o întrerupere recentă; Instalam pachete din alpine linux repo și repo-ul s-a oprit, împiedicând repornirea containerelor mele. Dacă instalați atât de multe lucruri într-un container, ar trebui într-adevăr să vă „commiteți” modificările din container într-o nouă imagine, apoi să „împingeți docker” pentru a împinge noua imagine în depozitul dumneavoastră. Modul în care sunteți configurat chiar acum, dacă fie un depozit Debian, fie docker-php-ext-install se defectează, veți avea probleme de repornire.
drapel cn
Nu sunt sigur de ce repo-ul tău nu are pachetul necesar, dar am găsit o copie aici: https://packages.debian.org/sid/amd64/unixodbc-dev/download
drapel dk
ce comandă ar trebui să rulez și există o modalitate sigură de a instala toate pachetele pe care le doresc?
drapel cn
Nu sunt sigur cum să funcționeze driverul odbc, am căutat pe google și am găsit câteva instrucțiuni despre instalarea driverului MS odbc, dar nu folosesc niciodată serverul SQL și nu pot comenta din experiență cum să vă rezolv problema. Google-l, alte persoane par să fi avut această problemă. În ceea ce privește modul de a configura totul, aș lua fișierul docker la care lucrați, aș rula containerul și aș conecta (docker exec -it containernumber bash). Apoi configurați-l din interiorul containerului, puteți verifica pachetele wget/curl dacă este necesar. Apoi „docker commit containername imagename”. >>
drapel cn
Veți vedea apoi numele imaginii când rulați „docker image ls”. De acolo, probabil că ar trebui să aveți un repo privat de un fel. Registrul Docker nu a părut greu de configurat, dar compania dvs. probabil are deja unul. Apoi împingeți docker în depozitul dvs. local folosind noua sintaxă, cum ar fi „docker push imagename reserver:8081/foobar-api/imagename:latest” sau ceva de genul acesta. Există documentație aici: https://docs.docker.com/engine/reference/commandline/push/ Sper că asta vrei să spui! Asigurați-vă că testați imaginea pe care o faceți pentru a vă asigura că programul principal pentru containerul dvs. pornește în continuare corect
drapel cn
Odată ce pachetele și configurarea php și totul este inclus în imagine, ar trebui să fiți setat permanent. Principala problemă în a face asta (și de ce ați putea dori să aveți instalarea într-un fișier docker) este că face dificilă automatizarea creării containerelor docker. Puteți oricând să vă întoarceți și să transformați pașii de instalare, inclusiv angajarea containerului într-o imagine, în rutina dvs. de construire/eliberare a containerului.
drapel cn
Oricum, acesta este doar un sfat întâmplător, nu ezitați să mă ignorați :)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.