apt-get не может найти пакет, используя пользовательский список sources.list в docker + dokku

У меня возникают проблемы с установкой пакетов с помощью apt-get при запуске приложения Dokku.

Краткий контекст:

Сборочные пакеты, которые я использую с Dokku, <the-app>/.buildpacks:

https://github.com/auricapps/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-python

Пакеты, которые я хотел бы установить, <the-app>/Aptfile:

libxml2-dev
libxmlsec1-dev
libxslt1-dev
pkg-config
python3-dev
zlib1g-dev

При устранении неполадок я заметил, что исходные репозитории недоступны в /etc/apt/sources.list и /etc/apt/sources.list.d, поэтому я использовал Пакет сборки Heroku Apt, чтобы разрешить использование пользовательского списка источников. Здесь находится собственный пакет сборки, а здесь приведены конкретные изменения, которые я сделал, чтобы разрешить использование пользовательского sources.list путем добавления Sourcefile.

Источники, которые я включаю, <the-app>/Sourcefile:

deb http://archive.ubuntu.com/ubuntu trusty main restricted
deb-src http://archive.ubuntu.com/ubuntu trusty main restricted
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted
deb http://archive.ubuntu.com/ubuntu trusty universe
deb-src http://archive.ubuntu.com/ubuntu trusty universe
deb http://archive.ubuntu.com/ubuntu trusty-updates universe
deb-src http://archive.ubuntu.com/ubuntu trusty-updates universe
deb http://archive.ubuntu.com/ubuntu trusty multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main
deb-src http://security.ubuntu.com/ubuntu trusty-security main
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe

Проблема:

Тем не менее, это все еще не радость, так как apt-get install по-прежнему отвечает, что не смог найти пакеты, которые я хочу установить:

Counting objects: 127, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (117/117), done.
Writing objects: 100% (127/127), 18.22 KiB | 0 bytes/s, done.
Total 127 (delta 51), reused 0 (delta 0)
-----> Cleaning up...
-----> Building security-test from herokuish...
-----> Adding BUILD_ENV to build environment...
-----> Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
       Detected buildpacks: multi python
-----> Multipack app detected
remote: ownloading Buildpack: https://github.com/auricapps/heroku-buildpack-apt
=====> Detected Framework: Apt
-----> Found Sourcefile, temporarily using it as sources.list
...
remote: etching .debs for libxml2-dev
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package libxml2-dev
remote: etching .debs for libxmlsec1-dev
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package libxmlsec1-dev
remote: etching .debs for libxslt1-dev
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package libxslt1-dev
remote: etching .debs for pkg-config
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package pkg-config
remote: etching .debs for python3-dev
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package python3-dev
remote: etching .debs for zlib1g-dev
       Reading package lists...
       Building dependency tree...
remote: E: Unable to locate package zlib1g-dev
...

Любые советы / помощь? Большое спасибо!


person James H.    schedule 19.03.2017    source источник
comment
Пожалуйста, включите свой Dockerfile.   -  person BMitch    schedule 20.03.2017
comment
Это приложение Dokku, использующее по умолчанию сборку поверх herokuish, поэтому файл Dockerfile будет здесь.   -  person James H.    schedule 20.03.2017
comment
почему бы не добавить их прямо в список источников машины? а не только в приложении?   -  person xploshioOn    schedule 23.04.2017


Ответы (1)


Решено просто с помощью пользовательского Dockerfile. В какой-то момент я потрачу еще немного времени, чтобы понять, в чем проблема с использованием пакета сборки dokku-apt.

FROM heroku/cedar:14
ARG secret_key
RUN curl https://github.com/gliderlabs/herokuish/releases/download/v0.3.26/herokuish_0.3.26_linux_x86_64.tgz \
        --silent -L | tar -xzC /bin
RUN /bin/herokuish buildpack install \
    && ln -s /bin/herokuish /build \
    && ln -s /bin/herokuish /start \
    && ln -s /bin/herokuish /exec
COPY . /app
RUN bash /app/include/default_user.bash && rm -f /app/include/default_user.bash
RUN apt-get -qq -o dir::etc::sourcelist=/app/include/sources.list update \
  && apt-get -qq -o dir::etc::sourcelist=/app/include/sources.list -y --force-yes install \
    libxml2-dev \
    libxmlsec1-dev \
    libxslt1-dev \
    pkg-config \
    python3-dev \
    zlib1g-dev
ENV SECRET_KEY $secret_key
RUN /bin/herokuish buildpack build
person James H.    schedule 23.04.2017