Sli*_*lim 14 apk docker alpine-linux
我正在尝试将postgis安装到postgres容器中.Dockerfile:
FROM postgres:9.6.4-alpine
RUN apk update \
&& apk add -u postgresql-9.6-postgis-2.4 postgresql-9.6-postgis-2.4-scripts \
&& rm -rf /var/lib/apt/lists/*
COPY ./scripts/postgis.sh /docker-entrypoint-initdb.d/postgis.sh
Run Code Online (Sandbox Code Playgroud)
postgis.sh:
#!/bin/sh
for DB in $(psql -t -c "SELECT datname from pg_database where datname = 'backend'"); do
echo "Loading PostGIS extensions into $DB"
"${psql[@]}" --dbname="$DB" <<-'EOSQL'
CREATE EXTENSION IF NOT EXISTS postgis;
EOSQL
done
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
错误:不可满足的约束:postgresql-9.6-postgis-2.4(缺失):所需:world [postgresql-9.6-postgis-2.4] postgresql-9.6-postgis-2.4-scripts(缺失):所需:world [postgresql-9.6 -postgis-2.4-scripts]命令'/ bin/sh -c apk update && apk add -u postgresql-9.6-postgis-2.4 postgresql-9.6-postgis-2.4-scripts && rm -rf/var/lib/apt/lists/*'返回非零代码:2
我发现了类似的问题,例如:
但它并没有解决我的问题.如何用apk添加postgis扩展到我的postgres容器?
Nic*_*lay 13
Postgis包只适用于边缘高山回购,而不是稳定的回购.这就是为什么你得到"不可满足的约束"错误.
但无论如何你可以postgis从边缘回购安装:
# 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
Run Code Online (Sandbox Code Playgroud)
所以,决赛Dockerfile是:
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
Run Code Online (Sandbox Code Playgroud)
小智 6
老的:
apk add --no-cache curl jq python py-pip
Run Code Online (Sandbox Code Playgroud)
新的:
apk add --no-cache curl jq python3 py3-pip
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24305 次 |
| 最近记录: |