Skip to content

Commit 3491aa8

Browse files
committed
IvorySQL v5.0 release for docker library
1 parent 87343f2 commit 3491aa8

27 files changed

+2184
-368
lines changed

1/trixie/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ RUN chmod +x /usr/local/bin/gosu
112112

113113
FROM debian:trixie-slim
114114

115-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
116-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
117119

118120
ENV IVORY_MAJOR 1
119121
ENV IVORY_VERSION 1.17
@@ -137,13 +139,11 @@ RUN apt-get update && \
137139
libldap2 \
138140
libldap2-dev \
139141
libreadline-dev \
140-
libicu-dev && \
142+
libicu-dev \
143+
libossp-uuid-dev && \
141144
apt-get clean
142145

143146

144-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
145-
RUN chown -R ivorysql:ivorysql /usr/local/bin
146-
147147
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148148

149149
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

3/bookworm/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ RUN chmod +x /usr/local/bin/gosu
112112

113113
FROM debian:bookworm-slim
114114

115-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
116-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
117119

118120
ENV IVORY_MAJOR 3
119121
ENV IVORY_VERSION 3.4
@@ -137,13 +139,11 @@ RUN apt-get update && \
137139
libldap-2.5-0 \
138140
libldap2-dev \
139141
libreadline-dev \
140-
libicu-dev && \
142+
libicu-dev \
143+
libossp-uuid-dev && \
141144
apt-get clean
142145

143146

144-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
145-
RUN chown -R ivorysql:ivorysql /usr/local/bin
146-
147147
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148148

149149
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

3/trixie/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ RUN chmod +x /usr/local/bin/gosu
112112

113113
FROM debian:trixie-slim
114114

115-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
116-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
117119

118120
ENV IVORY_MAJOR 3
119121
ENV IVORY_VERSION 3.4
@@ -137,13 +139,11 @@ RUN apt-get update && \
137139
libldap2 \
138140
libldap2-dev \
139141
libreadline-dev \
140-
libicu-dev && \
142+
libicu-dev \
143+
libossp-uuid-dev && \
141144
apt-get clean
142145

143146

144-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
145-
RUN chown -R ivorysql:ivorysql /usr/local/bin
146-
147147
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148148

149149
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

3/ubi8/Dockerfile

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,24 @@ RUN ARCH="$(uname -m)"; \
8383

8484
FROM redhat/ubi8:latest
8585

86-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
87-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
86+
RUN useradd -u 1000 ivorysql
87+
88+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql
89+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
8890

8991
ENV IVORY_MAJOR 3
9092
ENV IVORY_VERSION 3.4
9193

9294
RUN mkdir /docker-entrypoint-initdb.d
9395

94-
RUN useradd -u 1000 ivorysql
95-
96-
RUN dnf install -y \
97-
lz4 lz4-devel lz4-libs krb5-devel libxslt-devel libicu-devel && dnf -y clean all
96+
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo; \
97+
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
9898

99-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
100-
RUN chown -R ivorysql:ivorysql /usr/local/bin
99+
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm; \
100+
dnf install -y lz4 lz4-devel lz4-libs krb5-devel libxslt-devel libicu-devel; \
101+
dnf install -y e2fsprogs-devel libuuid-devel;\
102+
dnf install -y --enablerepo=*ower*ools uuid-devel;\
103+
dnf -y clean all
101104

102105
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
103106
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

4/bookworm/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ RUN chmod +x /usr/local/bin/gosu
112112

113113
FROM debian:bookworm-slim
114114

115-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
116-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
117119

118120
ENV IVORY_MAJOR 4
119121
ENV IVORY_VERSION 4.6
@@ -137,13 +139,11 @@ RUN apt-get update && \
137139
libldap-2.5-0 \
138140
libldap2-dev \
139141
libreadline-dev \
140-
libicu-dev && \
142+
libicu-dev \
143+
libossp-uuid-dev && \
141144
apt-get clean
142145

143146

144-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
145-
RUN chown -R ivorysql:ivorysql /usr/local/bin
146-
147147
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148148

149149
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

4/trixie/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ RUN chmod +x /usr/local/bin/gosu
112112

113113
FROM debian:trixie-slim
114114

115-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
116-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
117119

118120
ENV IVORY_MAJOR 4
119121
ENV IVORY_VERSION 4.6
@@ -137,13 +139,11 @@ RUN apt-get update && \
137139
libldap2 \
138140
libldap2-dev \
139141
libreadline-dev \
140-
libicu-dev && \
142+
libicu-dev \
143+
libossp-uuid-dev && \
141144
apt-get clean
142145

143146

144-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
145-
RUN chown -R ivorysql:ivorysql /usr/local/bin
146-
147147
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148148

149149
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

4/ubi8/Dockerfile

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,24 @@ RUN ARCH="$(uname -m)"; \
8383

8484
FROM redhat/ubi8:latest
8585

86-
COPY --from=builder /var/local/ivorysql /var/local/ivorysql/
87-
COPY --from=builder /usr/local/bin/gosu /usr/local/bin/gosu
86+
RUN useradd -u 1000 ivorysql
87+
88+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql
89+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
8890

8991
ENV IVORY_MAJOR 4
9092
ENV IVORY_VERSION 4.6
9193

9294
RUN mkdir /docker-entrypoint-initdb.d
9395

94-
RUN useradd -u 1000 ivorysql
95-
96-
RUN dnf install -y \
97-
lz4 lz4-devel lz4-libs krb5-devel libxslt-devel libicu-devel && dnf -y clean all
96+
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo; \
97+
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
9898

99-
RUN chown -R ivorysql:ivorysql /var/local/ivorysql
100-
RUN chown -R ivorysql:ivorysql /usr/local/bin
99+
RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm; \
100+
dnf install -y lz4 lz4-devel lz4-libs krb5-devel libxslt-devel libicu-devel; \
101+
dnf install -y e2fsprogs-devel libuuid-devel;\
102+
dnf install -y --enablerepo=*ower*ools uuid-devel;\
103+
dnf -y clean all
101104

102105
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
103106
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)

5/bookworm/Dockerfile

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
# Use Debian as the base image
8+
FROM debian:bookworm-slim as builder
9+
10+
# explicitly set user/group IDs
11+
RUN groupadd -g 1000 ivorysql; \
12+
useradd -u 1000 -g ivorysql -d /var/local/ivorysql -s /bin/sh ivorysql; \
13+
mkdir -p /var/local/ivorysql; \
14+
mkdir -p /usr/src/ivorysql; \
15+
mkdir -p /var/lib/ivorysql; \
16+
chown -R ivorysql:ivorysql /var/local/ivorysql; \
17+
chown -R ivorysql:ivorysql /usr/src/ivorysql; \
18+
chown -R ivorysql:ivorysql /var/lib/ivorysql
19+
20+
RUN mkdir /docker-entrypoint-initdb.d
21+
22+
# Set environment variables for IvorySQL
23+
ENV IVORY_MAJOR 5
24+
ENV IVORY_VERSION 5.0
25+
ARG USE_CHINA_MIRROR=false
26+
27+
# Use China mirror if specified
28+
RUN if [ "$USE_CHINA_MIRROR" = "true" ]; then \
29+
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources ;\
30+
fi
31+
32+
# Update package list and install necessary dependencies
33+
RUN apt-get update
34+
RUN apt-get install -y make \
35+
libreadline-dev \
36+
zlib1g-dev \
37+
libssl-dev \
38+
flex \
39+
wget \
40+
dpkg \
41+
build-essential \
42+
llvm \
43+
llvm-dev \
44+
liblz4-dev \
45+
clang \
46+
libkrb5-dev \
47+
libselinux1-dev \
48+
libxml2-dev \
49+
libsasl2-dev \
50+
libicu-dev \
51+
e2fslibs-dev \
52+
libsepol-dev \
53+
libsystemd-dev \
54+
libxslt1-dev \
55+
libldap2-dev \
56+
libssl-dev \
57+
libpam0g-dev \
58+
uuid-dev \
59+
python3-dev \
60+
libreadline-dev \
61+
tcl-dev \
62+
zlib1g-dev \
63+
perl \
64+
libperl-dev \
65+
perl \
66+
perl-base \
67+
perl-modules \
68+
perl-doc \
69+
m4 \
70+
libc6 \
71+
libbison-dev\
72+
libossp-uuid-dev\
73+
curl
74+
75+
RUN wget https://mirrors.ustc.edu.cn/gnu/bison/bison-3.0.4.tar.gz; \
76+
tar -xzvf bison-3.0.4.tar.gz; \
77+
cd bison-3.0.4 ; \
78+
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c ;\
79+
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h ;\
80+
mkdir build && cd build ;\
81+
../configure ;\
82+
make && make install ;
83+
84+
RUN wget -O ivorysql.tar.gz "https://github.com/IvorySQL/IvorySQL/archive/refs/tags/IvorySQL_$IVORY_VERSION.tar.gz"; \
85+
tar \
86+
--extract \
87+
--file ivorysql.tar.gz \
88+
--directory /usr/src/ivorysql \
89+
--strip-components 1 \
90+
; \
91+
rm ivorysql.tar.gz; \
92+
cd /usr/src/ivorysql; \
93+
./configure \
94+
--prefix=/var/local/ivorysql/ivorysql-$IVORY_MAJOR \
95+
--enable-cassert --enable-debug --enable-rpath --with-tcl \
96+
--with-python --with-gssapi --with-pam --with-ldap \
97+
--with-openssl --with-libedit-preferred --with-uuid=e2fs \
98+
--with-ossp-uuid --with-libxml --with-libxslt --with-perl \
99+
--without-icu \
100+
;\
101+
make && make install;
102+
103+
RUN rm -rf \
104+
/usr/src/ivorysql \
105+
/usr/local/share/doc \
106+
/usr/local/share/man
107+
108+
RUN chown -R ivorysql:ivorysql /var/local/ivorysql/ivorysql-$IVORY_MAJOR
109+
RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.11/gosu-$(dpkg --print-architecture)" # amd64 | arm64v8
110+
111+
RUN chmod +x /usr/local/bin/gosu
112+
113+
FROM debian:bookworm-slim
114+
115+
RUN useradd -u 1000 ivorysql
116+
117+
COPY --from=builder --chown=ivorysql:ivorysql /var/local/ivorysql /var/local/ivorysql/
118+
COPY --from=builder --chown=ivorysql:ivorysql /usr/local/bin/gosu /usr/local/bin/gosu
119+
120+
ENV IVORY_MAJOR 5
121+
ENV IVORY_VERSION 5.0
122+
ARG USE_CHINA_MIRROR=false
123+
RUN mkdir /docker-entrypoint-initdb.d
124+
125+
RUN useradd -u 1000 ivorysql
126+
127+
# Use China mirror if specified
128+
RUN if [ "$USE_CHINA_MIRROR" = "true" ]; then \
129+
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources ;\
130+
fi
131+
132+
RUN apt-get update && \
133+
apt-get install -y \
134+
liblz4-1 \
135+
liblz4-dev \
136+
libkrb5-dev \
137+
libxslt1-dev \
138+
libldap-common \
139+
libldap-2.5-0 \
140+
libldap2-dev \
141+
libreadline-dev \
142+
libicu-dev \
143+
libossp-uuid-dev && \
144+
apt-get clean
145+
146+
147+
ENV PGDATA /var/local/ivorysql/ivorysql-$IVORY_MAJOR/data
148+
149+
# this 1777 will be replaced by 0700 at runtime (allows semi-arbitrary "--user" values)
150+
RUN mkdir -p "$PGDATA" && chown -R ivorysql:ivorysql "$PGDATA" && chmod 1777 "$PGDATA"
151+
RUN mkdir -p /var/run/postgresql && chown -R ivorysql:ivorysql /var/run/postgresql && chmod 3777 /var/run/postgresql
152+
153+
VOLUME ["/var/local/ivorysql/ivorysql-$IVORY_MAJOR/data","/var/local/ivorysql/data"]
154+
155+
ENV PATH $PATH:/var/local/ivorysql/ivorysql-$IVORY_MAJOR/bin
156+
157+
COPY docker-entrypoint.sh docker-ensure-initdb.sh /usr/local/bin/
158+
RUN ln -sT docker-ensure-initdb.sh /usr/local/bin/docker-enforce-initdb.sh
159+
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
160+
161+
ENTRYPOINT ["docker-entrypoint.sh"]
162+
163+
STOPSIGNAL SIGINT
164+
165+
EXPOSE 5432 5866 1521
166+
167+
CMD ["postgres"]

0 commit comments

Comments
 (0)