ERROR: unsatisfiable constraints using apk in dockerfile

后端 未结 2 1251
说谎
说谎 2021-01-01 11:44

I\'m trying to install postgis into a postgres container. Dockerfile:

FROM postgres:9.6.4-alpine

RUN apk update \\
    && apk add -u postgresql-9.6-         


        
2条回答
  •  孤城傲影
    2021-01-01 12:20

    Postgis package is only available in edge alpine repo, not in a stable one. That's why you are getting "unsatisfiable constraints" error.

    But anyway you can install postgis from edge repo:

    # echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
    
    # apk update
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
    WARNING: This apk-tools is OLD! Some packages might not function properly.
    v3.5.2-254-g9d4623dc57 [http://dl-cdn.alpinelinux.org/alpine/v3.5/main]
    v3.5.2-247-gc85efb30e1 [http://dl-cdn.alpinelinux.org/alpine/v3.5/community]
    v3.7.0-2163-ge03552fc58 [http://dl-cdn.alpinelinux.org/alpine/edge/testing]
    OK: 10930 distinct packages available
    
    # apk search --no-cache postgis
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
    WARNING: This apk-tools is OLD! Some packages might not function properly.
    postgis-dev-2.4.1-r1
    postgis-2.4.1-r1
    postgis-doc-2.4.1-r1
    

    So, the final Dockerfile is:

    FROM postgres:9.6.4-alpine
    
    RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
    
    RUN apk update \
        && apk add -u postgis \
        && rm -rf /var/lib/apt/lists/*
    
    COPY ./scripts/postgis.sh  /docker-entrypoint-initdb.d/postgis.sh
    

    UPDATED on January 23th 2020:

    Postgis is available in main and community repositories starting from Alpine version 3.11:

    / # cat /etc/os-release
    NAME="Alpine Linux"
    ID=alpine
    VERSION_ID=3.11.3
    PRETTY_NAME="Alpine Linux v3.11"
    HOME_URL="https://alpinelinux.org/"
    BUG_REPORT_URL="https://bugs.alpinelinux.org/"
    / #
    / # apk search --no-cache postgis
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
    postgis-3.0.0-r1
    postgis-doc-3.0.0-r1
    

    You don't need to use edge repo testing branch for Alpine version 3.11 and later.

提交回复
热议问题