Problem z utworzeniem projektu na dockerze

0

Mam project z gotowym dockerem. Jak uruchamiam docker-compose up wywala mi blad ponizej:

The following packages have unmet dependencies:
 postgresql-client-9.6 : Depends: libpq5 (>= 9.6.9) but 9.6.7-0+deb9u1 is to be installed
E: Unable to correct problems, you have held broken packages.

I kod z dockerfile:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgdg.list;

apt-get -qy update && apt-get install -qy \
	postgresql-client-common \
	postgresql-client-9.6 || exit 1
0

Pokaż cały dockerfile.

0

Caly plik ponizej:

#!/usr/bin/env bash
apt-get -qy update && apt-get install -qy \
    software-properties-common \
    python-setuptools \
    apt-transport-https \
    ca-certificates \
    nano \
    make \
    wget \
    curl \
    procps \
    mcrypt \
    zip \
    unzip \
    redis-tools \
    netcat-openbsd \
    nodejs \
    libpq-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libpng-dev \
    libxml2-dev \
    libxslt-dev \
    libbz2-dev \
    libtidy-dev \
    libicu-dev \
    libxrender1 \
    libxext6 \
    libfontconfig1 || exit 1

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgdg.list;

apt-get -qy update && apt-get install -qy \
	postgresql-client-common \
	postgresql-client-9.6 || exit 1

docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ || exit 1
docker-php-ext-install -j$(nproc) intl pdo_pgsql gd mcrypt xmlrpc xsl soap zip bz2 tidy opcache || exit 1
pecl install -o -f redis &&  rm -rf /tmp/pear &&  docker-php-ext-enable redis || exit 1
0

To nie jest cały Dockerfile - gdzie klauzula from?

0
FROM sys/phpcli:latest
RUN apt-get install -qy git-core

# Install docker
RUN apt-get install -qy gnupg2
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
RUN apt-get -qy update && apt-get install -qy docker-ce=17.06.0~ce-0~debian

# Install composer
RUN (curl -sS https://getcomposer.org/installer | php) || exit 1
RUN mv composer.phar /usr/local/bin/composer.phar

# Create composer wrapper
RUN echo '#!/usr/bin/env bash' >> /usr/local/bin/composer
RUN echo 'COMPOSER_HOME=/opt/composer/$(whoami) /usr/local/bin/composer.phar $@' >> /usr/local/bin/composer
RUN chmod 0755 /usr/local/bin/composer

RUN composer global require fxp/composer-asset-plugin:1.4.0

ENV SYMFONY_ENV="prod"

COPY conf/builder-php.ini /usr/local/etc/php/php.ini

COPY bin/build.sh /usr/local/bin/
COPY bin/docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/*

# Analysis
RUN composer global require --no-progress --prefer-dist --ignore-platform-reqs --quiet "squizlabs/php_codesniffer:2.8.*" "phpmd/phpmd:2.6.*" "phpunit/phpunit:5.7.*"
COPY conf/phpcs.xml /usr/rules/phpcs.xml
COPY conf/phpmd.xml /usr/rules/phpmd.xml
RUN ln -s /opt/composer/root/vendor/bin/phpcs /bin/phpcs && ln -s /opt/composer/root/vendor/bin/phpmd /bin/phpmd && ln -s /opt/composer/root/vendor/bin/phpunit /bin/phpunit

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["build.sh"]

0

sys/phpcli - macie jakiegoś prywatnego, wewnątrzfirmowego Dockerhuba?
Najwyraźniej publiczne to nie jest.

Taaaak czy siak - w skrypcie instalujesz pakiety dla Debiana Jessie (deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg mai) - być może w kontenerze masz inną wersję, przez co jest problem ze zgodnością.

Odpal docker run -it sys/phpcli bash i stamtąd dowiedz się, jaką masz konkretnie wersję Debiana w tym kontenerze.

0

Nie naprawilem bledu i szczerze piszac nie wiem jak to naprawic.

0

Instalowałem ten sam projekt na tym samym dokerze jakieś 2-3 miesiące wcześniej i wszystko było ok. Czy to możliwe, że lunuxowe biblioteczki mają teraz jakieś konflikty?

0

@Patryk27: Czy to moze byc przez to ze Postgresa wydal jakas nowa wersje? Czy cos takiego? Albo biblioteczki dodatkowe wymagaja innej versji Postgresa?

0

Prędzej obstawiam, że ktoś zmienił wersję systemu, z którego jest odbity sys/phpcli - aby się dowiedzieć, musiałbyś wejść do niego (zgodnie z tym, co napisałem w poprzednim poście) i dowiedzieć się, jaka wersja systemu tam siedzi w środku.

0
  1. Sprawdź wersję systemu.
  2. Sprawdź, kto modyfikował dockerfile i jakie to były zmiany.
  3. Sprawdź, co było zmieniane w sys/phpcli . Czy latest jest taki sam jak 2-3 miesiące temu.
0
[poniatowski napisał(a)]:

Gdzie moge znalezc sys/phpcli? Czy to jest plik, ktory znajduje sie we wnatrz projektu czy to jest zdalne ropozytorium?

Zaczynam wątpić czy 3 miesiące temu to zbudowałeś ;).
sys/phpcli to obraz z repozytorium sys/phpcli wersji (dokładniej posiadający tag) latest. Istnieje u ciebie lokalnie (jeżeli go sam zbudowałeś lub sciągnąłeś [pull] z rejestru) lub w zdalnym rejestrz, np docker hub.

Edit: skasowałeś posta, ehh.

0

To jest pierwszy blad ktory dostawalem:

Package libpng12-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package python-software-properties is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  software-properties-common

E: Package 'python-software-properties' has no installation candidate
E: Package 'libpng12-dev' has no installation candidate
The command '/bin/sh -c /bin/bash /opt/bin/php-setup.sh' returned a non-zero code: 1

0

Ok, najpierw pobudowalem wszystkie obrazy oraz kontenery. System chodzil bez bazy danych oraz 2 paczek. Dodalem je recznie do kontenera. I tak nie dzialalo :D Bo docker sam tworzy baze danych, jej strukture oraz dane. Zeby to samemu zrobic to bedzie spoooro zabawy. Staralem sie tez zainstalowac nowsza wersje postgresa, pozniej kombinowalem ze starzymi. Tez nic. Staralem sie zrozumiec libpq5 po co jest ta paczka i czy da sie ominac instalacje jej. Tez nic. Nadal nie dziala mi dokeryzacja i skonczyly mi sie juz pomysly.

0

Prosze do kosza nikomu sie nie przyda ten watek. Z gory dziekuje. @Patryk27

1 użytkowników online, w tym zalogowanych: 0, gości: 1