Thanks,  maybe overwrite configuration in 'conf/flink-conf.yaml' by
docker-entrypoint.sh is a common way to do it, thanks for your advice.

Stephen Connolly <stephen.alan.conno...@gmail.com> 于2019年4月1日周一 下午10:33写道:

> I don't think it does. I ended up writing a small CLI tool to enabling
> templating the file from environment variables. There are loads of such
> tools, but mine is https://github.com/stephenc/envsub
>
> I have the dockerfile like so:
>
> ARG FLINK_VERSION=1.7.2-alpine
> FROM flink:${FLINK_VERSION}
> ARG
> ENVSUB=0.1.0::SHA::b10600c03236bbf0711476e11a1dff9ae285a50a48568bfd0bf6c6014fc69f0c
> RUN apk add --no-cache tini curl \
>     #
>     # Get envsub
>     #
> \
>     && curl -fsSL "
> https://github.com/stephenc/envsub/releases/download/${ENVSUB%%::SHA::*}/envsub";
> -o /usr/local/bin/envsub \
>     && if [ "${ENVSUB##*::SHA::}" = "${ENVSUB}" ] ; then \
>         echo "/usr/local/bin/envsub: Unverified" >&2 ; \
>     else \
>         echo "${ENVSUB##*::SHA::}  /usr/local/bin/envsub" | sha256sum -c -
> ; \
>     fi \
>     && chmod +x /usr/local/bin/envsub
>
> COPY rootfs/ /
>
> ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint2.sh"]
>
> CMD []
>
>
> Then docker-entrypoint2.sh looks like
>
> #!/usr/bin/env bash
>
> if [[ "$#" -eq 0 ]]; then
>     if [[ -z "${FLINK_ROLE}" ]]; then
>         echo "Please set environment variable FLINK_ROLE to either
> jobmanager or taskmanager"
>         exit 1
>     fi
>     envsub < /opt/flink/conf/flink-conf.template.yaml >
> /opt/flink/conf/flink-conf.yaml
>     exec /docker-entrypoint.sh "${FLINK_ROLE}"
> fi
>
> exec /docker-entrypoint.sh "${@}"
>
>
> and /opt/flink/conf/flink-conf.template.yaml has the environment variable
> substitution like so:
>
> fs.s3a.endpoint: ${FLINK_S3_ENDPOINT}
> fs.s3a.path.style.access: true
> fs.s3a.connection.ssl.enabled: false
> fs.s3a.access.key: ${AWS_ACCESS_KEY_ID}
> fs.s3a.secret.key: ${AWS_SECRET_KEY}
>
>
> Hope that is sufficient for you to derive your own solution
>
>
> On Fri, 29 Mar 2019 at 03:09, Lifei Chen <hust...@gmail.com> wrote:
>
>> Hi guys,
>>
>> I am using flink 1.7.2 deployed by kubernetes,  and I want to change the
>> configurations about flink,  for example customize
>> `taskmanager.heap.size`.
>>
>> Does flink support using environment variables to override configurations
>> in `conf/flink-conf.yaml` ?
>>
>

Reply via email to