Как собрать Postgres jsonlog в многоэтапном контейнере Docker - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть многоэтапный контейнер Docker, в котором я создаю jsonlog.

# Build stage
FROM postgres:11.5 AS build-env
ADD . /jsonlog
RUN apt-get update && apt-get install -y build-essential libkrb5-dev libssl-dev libpq-dev postgresql-server-dev-all
RUN cd /jsonlog && make install
# Used find to see where the output files are being installed
# RUN find / -name "*json*"

# Final stage
FROM postgres:11.5-alpine
COPY --from=build-env /usr/lib/postgresql/11/lib/bitcode/jsonlog/jsonlog.bc /usr/lib/postgresql/11/lib/bitcode/jsonlog/jsonlog.bc
COPY --from=build-env /usr/lib/postgresql/11/lib/bitcode/jsonlog.index.bc /usr/lib/postgresql/11/lib/bitcode/jsonlog.index.bc
COPY --from=build-env /usr/lib/postgresql/11/lib/jsonlog.so /usr/lib/postgresql/11/lib/jsonlog.so

Кажется, что docker build в порядке.Однако, когда я делаю docker run, я получаю эту ошибку.

LOG:  invalid value for parameter "log_destination": "jsonlog"
DETAIL:  Unrecognized key word: "jsonlog".
FATAL:  configuration file "/etc/postgresql/postgresql.conf" contains errors

Код jsonlog приходит из этого репозитория https://github.com/michaelpq/pg_plugins/tree/master/jsonlog,, который я клонировал.Я монтирую только каталог jsonlog в сборочный контейнер.

postgresql.conf ванильный, за исключением этих строк.

log_destination = 'jsonlog'
logging_collector = on
shared_preload_libraries = 'jsonlog'

Причиной создания многоступенчатого контейнера являетсяизбавиться от зависимостей сборки и иметь меньший контейнер.Я хотел бы запустить postgres:11.5-alpine, но я также получаю ошибки с postgres:11.5 образом.

Обновление

Я попытался избавиться от многоступенчатойи просто хранить все в одном контейнере следующим образом.

FROM postgres:11.5
ADD . /jsonlog
RUN apt-get update && apt-get install -y build-essential libkrb5-dev libssl-dev libpq-dev postgresql-server-dev-all
RUN cd /jsonlog && make install

Но это приводит к точной ошибке Unrecognized key word: "jsonlog".

Кроме того, я также попытался встроить контейнер Postgres 9.5 ипроисходит то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...