Skip to content

Commit 0893875

Browse files
authored
Merge pull request #58 from datastax/dockerfile_updates
Adjusted user creation in UBI 8 image
2 parents 0cd2531 + d801fbb commit 0893875

File tree

2 files changed

+23
-70
lines changed

2 files changed

+23
-70
lines changed

docker/Dockerfile

Lines changed: 21 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ COPY . .
66

77
RUN ./gradlew copyDockerBuildCtx
88

9+
10+
#############################################################
11+
912
# The datastax base image is not multiarch presently, so we use the openjdk
1013
# image as our base for arm builds instead.
1114
FROM eclipse-temurin:8-jdk as cass-config-builder
@@ -30,17 +33,23 @@ ENTRYPOINT ["/usr/local/bin/entrypoint"]
3033

3134
USER ${USER_UID}
3235

33-
FROM registry.access.redhat.com/ubi7/ubi-minimal:7.9 AS builder-ubi
36+
#############################################################
37+
38+
FROM redhat/ubi8-minimal:8.9 AS builder-ubi
3439

3540
# Update the builder packages and create user
3641
RUN microdnf update && rm -rf /var/cache/yum && \
37-
microdnf install shadow-utils && microdnf clean all && \
42+
microdnf install shadow-utils findutils && microdnf clean all && \
3843
useradd -r -s /bin/false -U -G root cassandra
3944

40-
#############################################################
45+
COPY --from=builder --chown=cassandra:root build/docker/definitions /definitions
46+
47+
RUN find /definitions -type d -exec chmod 0775 {} \;
4148

42-
FROM registry.access.redhat.com/ubi7/ubi-minimal:7.9 as cass-config-builder-ubi
49+
#############################################################
4350

51+
# Build the UBI8 image
52+
FROM redhat/ubi8-minimal:8.9 as cass-config-builder-ubi
4453
LABEL maintainer="DataStax, Inc <info@datastax.com>"
4554
LABEL name="cass-config-builder"
4655
LABEL vendor="DataStax, Inc"
@@ -54,58 +63,20 @@ RUN microdnf update && \
5463
microdnf install java-1.8.0-openjdk-headless && \
5564
microdnf clean all
5665

57-
# Copy user accounts information
58-
COPY --from=builder-ubi /etc/passwd /etc/passwd
59-
COPY --from=builder-ubi /etc/shadow /etc/shadow
60-
COPY --from=builder-ubi /etc/group /etc/group
61-
COPY --from=builder-ubi /etc/gshadow /etc/gshadow
62-
63-
# Install the uber jar
64-
COPY --from=builder build/docker/*.jar /usr/local/bin/
65-
66-
# Install definition files
67-
COPY --from=builder build/docker/definitions /definitions
68-
69-
COPY --from=builder build/docker/bin/* /usr/local/bin/
70-
71-
COPY --from=builder build/docker/LICENSE /licenses/
72-
73-
# Fix permissions
74-
RUN chown cassandra:root -Rv /usr/local/bin/* && \
75-
chmod -Rv g+x /usr/local/bin
76-
77-
USER cassandra:root
78-
79-
ENV PATH=$PATH:/usr/local/bin
80-
81-
ENTRYPOINT ["/usr/local/bin/entrypoint"]
82-
83-
# Build the UBI8 image
84-
FROM registry.access.redhat.com/ubi8/openjdk-8:1.18 as cass-config-builder-ubi-8
85-
LABEL maintainer="DataStax, Inc <info@datastax.com>"
86-
LABEL name="cass-config-builder"
87-
LABEL vendor="DataStax, Inc"
88-
LABEL release="1.0.0"
89-
LABEL summary="Configuration templating engine for Apache Cassandra®."
90-
LABEL description="Configuration templating engine for Apache Cassandra®. Powers the configuration of containers deployed via the DataStax Kubernetes Operator for Apache Cassandra."
91-
92-
# Create user
93-
USER root
94-
RUN microdnf install shadow-utils && useradd -r -s /bin/false -U -G root cassandra
66+
# Copy user account information
67+
COPY --from=builder-ubi /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/
9568

9669
# Install the uber jar
97-
COPY --from=builder build/docker/*.jar /usr/local/bin/
70+
COPY --from=builder --chown=cassandra:root build/docker/*.jar /usr/local/bin/
9871

9972
# Install definition files
100-
COPY --from=builder build/docker/definitions /definitions
101-
102-
COPY --from=builder build/docker/bin/* /usr/local/bin/
73+
COPY --from=builder-ubi --chown=cassandra:root /definitions /definitions
10374

104-
COPY --from=builder build/docker/LICENSE /licenses/
75+
# Install scripts
76+
COPY --from=builder --chown=cassandra:root build/docker/bin/* /usr/local/bin/
10577

106-
# Fix permissions
107-
RUN chown cassandra:root -Rv /usr/local/bin/* && \
108-
chmod -Rv g+x /usr/local/bin
78+
# Install licenses
79+
COPY --from=builder --chown=cassandra:root build/docker/LICENSE /licenses/
10980

11081
USER cassandra:root
11182

scripts/build-push-images.sh

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ RELEASE_VERSION="${VERSION_NUMBER}-${VERSION_DATE}"
1616
GH_REPOSITORY="ghcr.io/${GITHUB_REPO_OWNER}/cass-config-builder/cass-config-builder"
1717

1818
GH_TAGS=(--tag "${GH_REPOSITORY}:${RELEASE_VERSION}")
19-
GH_UBI_TAGS=(--tag "${GH_REPOSITORY}:${RELEASE_VERSION}-ubi7")
20-
GH_UBI8_TAGS=(--tag "${GH_REPOSITORY}:${RELEASE_VERSION}-ubi8")
19+
GH_UBI_TAGS=(--tag "${GH_REPOSITORY}:${RELEASE_VERSION}-ubi")
2120
GH_ARM64_TAGS=(--tag "${GH_REPOSITORY}:${RELEASE_VERSION}-arm64")
2221

2322
LABELS=(
@@ -45,11 +44,6 @@ UBI_ARGS=(
4544
--target cass-config-builder-ubi
4645
)
4746

48-
UBI8_ARGS=(
49-
"${COMMON_ARGS[@]}"
50-
--target cass-config-builder-ubi-8
51-
)
52-
5347
# GitHub packages does not presently support multiarch images, so we
5448
# will have to create independent tags for each arch. This feature is
5549
# coming though:
@@ -75,19 +69,7 @@ docker buildx build --load \
7569
--platform linux/amd64 \
7670
.
7771

78-
docker buildx build --load \
79-
"${GH_UBI8_TAGS[@]}" \
80-
"${UBI8_ARGS[@]}" \
81-
--platform linux/amd64 \
82-
.
83-
84-
docker buildx build --load \
85-
"${GH_UBI8_TAGS[@]}" \
86-
"${UBI8_ARGS[@]}" \
87-
--platform linux/arm64 \
88-
.
89-
90-
TAGS_TO_PUSH=("${GH_ARM64_TAGS[@]}" "${GH_TAGS[@]}" "${GH_UBI_TAGS[@]}" "${GH_UBI8_TAGS[@]}")
72+
TAGS_TO_PUSH=("${GH_ARM64_TAGS[@]}" "${GH_TAGS[@]}" "${GH_UBI_TAGS[@]}")
9173
echo "Pushing tags: " "${TAGS_TO_PUSH[@]}"
9274

9375
# Note: Every even index of TAGS_TO_PUSH will be the string '--tag'

0 commit comments

Comments
 (0)