Skip to content

Commit 37aa34b

Browse files
aledbfahmetb
authored andcommitted
Replace deprecated ubuntu-slim image with debian-base from k8s (#198)
1 parent a141ee9 commit 37aa34b

File tree

3 files changed

+120
-85
lines changed

3 files changed

+120
-85
lines changed

cassandra/image/Dockerfile

+6-83
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM k8s.gcr.io/ubuntu-slim:0.9
15+
FROM k8s.gcr.io/debian-base-amd64:0.3
1616

1717
ARG BUILD_DATE
1818
ARG VCS_REF
@@ -34,90 +34,13 @@ ENV CASSANDRA_HOME=/usr/local/apache-cassandra-${CASSANDRA_VERSION} \
3434
CASSANDRA_DATA=/cassandra_data \
3535
CASSANDRA_LOGS=/var/log/cassandra \
3636
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \
37-
PATH=${PATH}:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/apache-cassandra-${CASSANDRA_VERSION}/bin \
38-
DI_VERSION=1.2.0 \
39-
DI_SHA=81231da1cd074fdc81af62789fead8641ef3f24b6b07366a1c34e5b059faf363
37+
PATH=${PATH}:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/apache-cassandra-${CASSANDRA_VERSION}/bin
4038

4139
ADD files /
4240

43-
RUN set -e && echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \
44-
&& apt-get update && apt-get -qq -y --force-yes install --no-install-recommends \
45-
openjdk-8-jre-headless \
46-
libjemalloc1 \
47-
localepurge \
48-
wget && \
49-
mirror_url=$( wget -q -O - http://www.apache.org/dyn/closer.cgi/cassandra/ \
50-
| sed -n 's#.*href="\(http://.*/cassandra\/[^"]*\)".*#\1#p' \
51-
| head -n 1 \
52-
) \
53-
&& wget -q -O - ${mirror_url}/${CASSANDRA_VERSION}/apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz \
54-
| tar -xzf - -C /usr/local \
55-
&& wget -q -O - https://github.com/Yelp/dumb-init/releases/download/v${DI_VERSION}/dumb-init_${DI_VERSION}_amd64 > /sbin/dumb-init \
56-
&& echo "$DI_SHA /sbin/dumb-init" | sha256sum -c - \
57-
&& chmod +x /sbin/dumb-init \
58-
&& chmod +x /ready-probe.sh \
59-
&& mkdir -p /cassandra_data/data \
60-
&& mkdir -p /etc/cassandra \
61-
&& mv /logback.xml /cassandra.yaml /jvm.options /etc/cassandra/ \
62-
&& mv /usr/local/apache-cassandra-${CASSANDRA_VERSION}/conf/cassandra-env.sh /etc/cassandra/ \
63-
&& adduser --disabled-password --no-create-home --gecos '' --disabled-login cassandra \
64-
&& chown cassandra: /ready-probe.sh \
65-
&& if [ -n "$DEV_CONTAINER" ]; then apt-get -y --no-install-recommends install python; else rm -rf $CASSANDRA_HOME/pylib; fi \
66-
&& apt-get -y purge wget localepurge \
67-
&& apt-get -y autoremove \
68-
&& apt-get clean \
69-
&& rm -rf \
70-
$CASSANDRA_HOME/*.txt \
71-
$CASSANDRA_HOME/doc \
72-
$CASSANDRA_HOME/javadoc \
73-
$CASSANDRA_HOME/tools/*.yaml \
74-
$CASSANDRA_HOME/tools/bin/*.bat \
75-
$CASSANDRA_HOME/bin/*.bat \
76-
doc \
77-
man \
78-
info \
79-
locale \
80-
common-licenses \
81-
~/.bashrc \
82-
/var/lib/apt/lists/* \
83-
/var/log/* \
84-
/var/cache/debconf/* \
85-
/etc/systemd \
86-
/lib/lsb \
87-
/lib/udev \
88-
/usr/share/doc/ \
89-
/usr/share/doc-base/ \
90-
/usr/share/man/ \
91-
/tmp/* \
92-
/usr/lib/jvm/java-8-openjdk-amd64/jre/plugin \
93-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/javaws \
94-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jjs \
95-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd \
96-
/usr/lib/jvm/java-8-openjdk-amd64/bin/pack200 \
97-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/policytool \
98-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmid \
99-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmiregistry \
100-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool \
101-
/usr/lib/jvm/java-8-openjdk-amd64/bin/tnameserv \
102-
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/unpack200 \
103-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/javaws.jar \
104-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/deploy* \
105-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/desktop \
106-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/*javafx* \
107-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/*jfx* \
108-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libdecora_sse.so \
109-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libprism_*.so \
110-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libfxplugins.so \
111-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libglass.so \
112-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libgstreamer-lite.so \
113-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjavafx*.so \
114-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjfx*.so \
115-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar \
116-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/nashorn.jar \
117-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/oblique-fonts \
118-
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/plugin.jar \
119-
/usr/lib/jvm/java-8-openjdk-amd64/man
120-
41+
RUN clean-install bash \
42+
&& /build.sh \
43+
&& rm /build.sh
12144

12245
VOLUME ["/$CASSANDRA_DATA"]
12346

@@ -128,4 +51,4 @@ VOLUME ["/$CASSANDRA_DATA"]
12851
# 9160: thrift service
12952
EXPOSE 7000 7001 7199 9042 9160
13053

131-
CMD ["/sbin/dumb-init", "/bin/bash", "/run.sh"]
54+
CMD ["/usr/bin/dumb-init", "/bin/bash", "/run.sh"]

cassandra/image/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
# limitations under the License.
1414

1515
# build the cassandra image.
16-
VERSION=v12
16+
VERSION=v13
1717
PROJECT_ID?=google_samples
1818
PROJECT=gcr.io/${PROJECT_ID}
19-
CASSANDRA_VERSION=3.10
19+
CASSANDRA_VERSION=3.11.2
2020

2121
all: kubernetes-cassandra.jar build
2222

cassandra/image/files/build.sh

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#!/bin/bash
2+
3+
# Copyright 2018 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
18+
set -o errexit
19+
set -o nounset
20+
set -o pipefail
21+
22+
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
23+
24+
apt-get update && apt-get dist-upgrade -y
25+
26+
clean-install \
27+
openjdk-8-jre-headless \
28+
libjemalloc1 \
29+
localepurge \
30+
dumb-init \
31+
wget
32+
33+
CASSANDRA_PATH="cassandra/${CASSANDRA_VERSION}/apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz"
34+
CASSANDRA_DOWNLOAD="http://www.apache.org/dyn/closer.cgi?path=/${CASSANDRA_PATH}&as_json=1"
35+
CASSANDRA_MIRROR=`wget -q -O - ${CASSANDRA_DOWNLOAD} | grep -oP "(?<=\"preferred\": \")[^\"]+"`
36+
37+
echo "Downloading Apache Cassandra from $CASSANDRA_MIRROR$CASSANDRA_PATH..."
38+
wget -q -O - $CASSANDRA_MIRROR$CASSANDRA_PATH \
39+
| tar -xzf - -C /usr/local
40+
41+
mkdir -p /cassandra_data/data
42+
mkdir -p /etc/cassandra
43+
44+
mv /logback.xml /cassandra.yaml /jvm.options /etc/cassandra/
45+
mv /usr/local/apache-cassandra-${CASSANDRA_VERSION}/conf/cassandra-env.sh /etc/cassandra/
46+
47+
adduser --disabled-password --no-create-home --gecos '' --disabled-login cassandra
48+
chmod +x /ready-probe.sh
49+
chown cassandra: /ready-probe.sh
50+
51+
DEV_IMAGE=${DEV_CONTAINER:-}
52+
if [ ! -z "$DEV_IMAGE" ]; then
53+
clean-install python;
54+
else
55+
rm -rf $CASSANDRA_HOME/pylib;
56+
fi
57+
58+
apt-get -y purge localepurge
59+
apt-get -y autoremove
60+
apt-get clean
61+
62+
rm -rf \
63+
$CASSANDRA_HOME/*.txt \
64+
$CASSANDRA_HOME/doc \
65+
$CASSANDRA_HOME/javadoc \
66+
$CASSANDRA_HOME/tools/*.yaml \
67+
$CASSANDRA_HOME/tools/bin/*.bat \
68+
$CASSANDRA_HOME/bin/*.bat \
69+
doc \
70+
man \
71+
info \
72+
locale \
73+
common-licenses \
74+
~/.bashrc \
75+
/var/lib/apt/lists/* \
76+
/var/log/* \
77+
/var/cache/debconf/* \
78+
/etc/systemd \
79+
/lib/lsb \
80+
/lib/udev \
81+
/usr/share/doc/ \
82+
/usr/share/doc-base/ \
83+
/usr/share/man/ \
84+
/tmp/* \
85+
/usr/lib/jvm/java-8-openjdk-amd64/jre/plugin \
86+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/javaws \
87+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jjs \
88+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd \
89+
/usr/lib/jvm/java-8-openjdk-amd64/bin/pack200 \
90+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/policytool \
91+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmid \
92+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmiregistry \
93+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool \
94+
/usr/lib/jvm/java-8-openjdk-amd64/bin/tnameserv \
95+
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/unpack200 \
96+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/javaws.jar \
97+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/deploy* \
98+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/desktop \
99+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/*javafx* \
100+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/*jfx* \
101+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libdecora_sse.so \
102+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libprism_*.so \
103+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libfxplugins.so \
104+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libglass.so \
105+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libgstreamer-lite.so \
106+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjavafx*.so \
107+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjfx*.so \
108+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar \
109+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/nashorn.jar \
110+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/oblique-fonts \
111+
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/plugin.jar \
112+
/usr/lib/jvm/java-8-openjdk-amd64/man

0 commit comments

Comments
 (0)