kafka

Форк
0
/
Dockerfile 
76 строк · 3.0 Кб
1
# Licensed to the Apache Software Foundation (ASF) under one or more
2
# contributor license agreements.  See the NOTICE file distributed with
3
# this work for additional information regarding copyright ownership.
4
# The ASF licenses this file to You under the Apache License, Version 2.0
5
# (the "License"); you may not use this file except in compliance with
6
# the License.  You may obtain a copy of the License at
7
#
8
#    http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15

16
FROM ghcr.io/graalvm/graalvm-community:21 AS build-native-image
17

18
ARG kafka_url
19

20
WORKDIR /app
21

22
ENV KAFKA_URL=$kafka_url
23
ENV NATIVE_IMAGE_PATH="native-image"
24
ENV KAFKA_DIR="/app/kafka"
25
ENV NATIVE_CONFIGS_DIR="/app/native-image-configs"
26
ENV KAFKA_LIBS_DIR="$KAFKA_DIR/libs"
27
ENV TARGET_PATH="$KAFKA_DIR/kafka.Kafka"
28

29
COPY native-image-configs $NATIVE_CONFIGS_DIR
30
COPY native_command.sh native_command.sh
31

32
RUN mkdir $KAFKA_DIR; \
33
    microdnf install wget; \
34
    wget -nv -O kafka.tgz "$KAFKA_URL"; \
35
    wget -nv -O kafka.tgz.asc "$KAFKA_URL.asc"; \
36
    tar xfz kafka.tgz -C $KAFKA_DIR --strip-components 1; \
37
    wget -nv -O KEYS https://downloads.apache.org/kafka/KEYS; \
38
    gpg --import KEYS; \
39
    gpg --batch --verify kafka.tgz.asc kafka.tgz; \
40
    rm kafka.tgz ; \
41
# Build the native-binary of the apache kafka using graalVM native-image.
42
    /app/native_command.sh $NATIVE_IMAGE_PATH $NATIVE_CONFIGS_DIR $KAFKA_LIBS_DIR $TARGET_PATH
43

44

45
FROM alpine:latest
46

47
EXPOSE 9092
48

49
ARG build_date
50

51
LABEL org.label-schema.name="kafka" \
52
      org.label-schema.description="Apache Kafka" \
53
      org.label-schema.build-date="${build_date}" \
54
      org.label-schema.vcs-url="https://github.com/apache/kafka" \
55
      maintainer="Apache Kafka"
56

57
RUN apk update ; \
58
    apk add --no-cache gcompat ; \
59
    apk add --no-cache bash ; \
60
    mkdir -p /etc/kafka/docker /mnt/shared/config /opt/kafka/config /etc/kafka/secrets ; \
61
    adduser -h /home/appuser -D --shell /bin/bash appuser ; \
62
    chown appuser:root -R /etc/kafka /opt/kafka /mnt/shared/config ; \
63
    chmod -R ug+w /etc/kafka /opt/kafka /mnt/shared/config ;
64

65
COPY --chown=appuser:root --from=build-native-image /app/kafka/kafka.Kafka /opt/kafka/
66
COPY --chown=appuser:root --from=build-native-image /app/kafka/config/kraft/server.properties /etc/kafka/docker/
67
COPY --chown=appuser:root --from=build-native-image /app/kafka/config/log4j.properties /etc/kafka/docker/
68
COPY --chown=appuser:root --from=build-native-image /app/kafka/config/tools-log4j.properties /etc/kafka/docker/
69
COPY --chown=appuser:root resources/common-scripts /etc/kafka/docker/
70
COPY --chown=appuser:root launch /etc/kafka/docker/
71

72
USER appuser
73

74
VOLUME ["/etc/kafka/secrets", "/mnt/shared/config"]
75

76
CMD ["/etc/kafka/docker/run"]
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.