好的,因此任务似乎很简单!使用Alpine
图像(因为它重量轻且安全)来执行一些PostgreSQL
数据库创建/迁移。我使用的是以下Dockerfile
使用的代码在这里:
FROM alpine:latest
RUN apk add -U postgresql
# install PostGIS
ENV POSTGIS_VERSION 2.5.2
ENV POSTGIS_SHA256 225aeaece00a1a6a9af15526af81bef2af27f4c198de820af1367a792ee1d1a9
RUN set -ex \
\
&& apk add --no-cache --virtual .fetch-deps \
ca-certificates \
openssl \
tar \
\
&& wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/$POSTGIS_VERSION.tar.gz" \
&& echo "$POSTGIS_SHA256 *postgis.tar.gz" | sha256sum -c - \
&& mkdir -p /usr/src/postgis \
&& tar \
--extract \
--file postgis.tar.gz \
--directory /usr/src/postgis \
--strip-components 1 \
&& rm postgis.tar.gz \
\
&& apk add --no-cache --virtual .build-deps \
autoconf \
automake \
g++ \
json-c-dev \
libtool \
libxml2-dev \
make \
perl \
\
&& apk add --no-cache --virtual .build-deps-edge \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
gdal-dev \
geos-dev \
proj4-dev \
protobuf-c-dev \
&& cd /usr/src/postgis \
&& ./autogen.sh \
# configure options taken from:
# https://anonscm.debian.org/cgit/pkg-grass/postgis.git/tree/debian/rules?h=jessie
&& ./configure \
# --with-gui \
&& make \
&& make install \
&& apk add --no-cache --virtual .postgis-rundeps \
json-c \
&& apk add --no-cache --virtual .postgis-rundeps-edge \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
geos \
gdal \
proj4 \
protobuf-c \
&& cd / \
&& rm -rf /usr/src/postgis \
&& apk del .fetch-deps .build-deps .build-deps-edge
COPY ./db-creator.sh /db-creator.sh
CMD ["./db-creator.sh"]
但是,apk
由于某些unsatisfiable constraints
错误,未使用安装依赖项。错误如下,我打开的这个问题中提供了完整的日志。
ERROR: unsatisfiable constraints:
gdal-dev (missing):
required by: .build-deps-edge-20200123.143501[gdal-dev]
geos-dev (missing):
required by: .build-deps-edge-20200123.143501[geos-dev]
proj4-dev (missing):
required by: .build-deps-edge-20200123.143501[proj4-dev]
任何帮助表示赞赏。
github上的代码包含另一个图像postgres:11-alpine与问题中定义的图像进行比较alpine:latest
。
软件包gdal-
dev
,geos-
dev
,protobuf-c-
dev
不再位于边缘仓库测试分支中,它们已迁移到稳定的v3.11存储库中。还被proj4-dev
重命名为proj-
dev,它也位于稳定的v3.11存储库中。
因此,要解决此问题,Dockerfile
我们只需要从v3.11 repo安装上述软件包,即更改这部分代码:
&& apk add --no-cache --virtual .build-deps \
autoconf \
automake \
g++ \
json-c-dev \
libtool \
libxml2-dev \
make \
perl \
\
&& apk add --no-cache --virtual .build-deps-edge \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
gdal-dev \
geos-dev \
proj4-dev \
protobuf-c-dev \
proj4-dev \
protobuf-c-dev \
对此:
&& apk add --no-cache --virtual .build-deps \
autoconf \
automake \
g++ \
gdal-dev \
geos-dev \
json-c-dev \
libtool \
libxml2-dev \
make \
perl \
proj-dev \
protobuf-c-dev \
\
最终Dockerfile
是:
FROM alpine:3.11
RUN apk add -U postgresql
# install PostGIS
ENV POSTGIS_VERSION 2.5.2
ENV POSTGIS_SHA256 225aeaece00a1a6a9af15526af81bef2af27f4c198de820af1367a792ee1d1a9
RUN set -ex \
\
&& apk add --no-cache --virtual .fetch-deps \
ca-certificates \
openssl \
tar \
\
&& wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/$POSTGIS_VERSION.tar.gz" \
&& echo "$POSTGIS_SHA256 *postgis.tar.gz" | sha256sum -c - \
&& mkdir -p /usr/src/postgis \
&& tar \
--extract \
--file postgis.tar.gz \
--directory /usr/src/postgis \
--strip-components 1 \
&& rm postgis.tar.gz \
\
&& apk add --no-cache --virtual .build-deps \
autoconf \
automake \
g++ \
gdal-dev \
geos-dev \
json-c-dev \
libtool \
libxml2-dev \
make \
perl \
proj-dev \
protobuf-c-dev \
\
&& cd /usr/src/postgis \
&& ./autogen.sh \
# configure options taken from:
# https://anonscm.debian.org/cgit/pkg-grass/postgis.git/tree/debian/rules?h=jessie
&& ./configure \
# --with-gui \
&& make \
&& make install \
&& apk add --no-cache --virtual .postgis-rundeps \
json-c \
&& apk add --no-cache --virtual .postgis-rundeps-edge \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
geos \
gdal \
proj4 \
protobuf-c \
&& cd / \
&& rm -rf /usr/src/postgis \
&& apk del .fetch-deps .build-deps .build-deps-edge
COPY ./db-creator.sh /db-creator.sh
CMD ["./db-creator.sh"]
我是新的Cognito。我试图使用Lambda实现AWS Cognito。这是我正在遵循的教程。 这是我在setIdtyPoolId中使用的池ID 这是JUnit测试 这是输出 但是我得到以下错误,因此,语句失败
尝试将流数据从MYSQL迁移到Kinesis时出错。帮我修一下。 botocore.exceptions.ClientError:调用PutRecord操作时发生错误(ValidationException):检测到1个验证错误:“streamName”处的值“”未能满足约束:成员必须满足正则表达式模式:[a-zA-Z0-9.-]
我正在尝试在GoogleKubernetes引擎中的docker映像中安装fuse。 这是我的多克文件: 但是当我尝试构建这个图像时,我得到了以下错误: 我试图在docker容器内的ubuntu映像上运行这个程序,以访问容器内的Google云存储。 我只想在我的容器内下载gcsfuse,我已经尝试了很多事情,最终都出现了错误,但这个错误似乎是最合理的错误,所以我问这个,但如果有更好的方法来下载保险
我有两张桌子。第一个是人口;第二个是空的。 我希望第二个有一个外键,它引用第一个中的一列。 null 架构: 填充。为空。 不能成为的外键: MySQL没有提供错误的原因;不返回: 我拥有所需的数据库权限。 我已经仔细检查了列(甚至表)是否具有相同的排序规则(字符集不适用于INT列): MySQL无法添加外键约束 MySQL:错误1215(HY000):无法添加外键约束 无法添加外键约束-MySQ
我有Visual Studio Code在我的Mac和想安装TypeScript的角。我以前已经安装了Node.js或Git我想。来自TypeScript网站的这个命令应该安装TypeScript,如果它在Mac终端中运行,但是它没有: 如果我将其粘贴到终端中并按enter键,终端中会出现以下错误代码:(问题出在哪里?我真的不明白,也不知道终端是什么,我不是电脑专家。如果你有简单易懂的提示,对初学