Preciso processar o ENV do k8s Statefulset no contêiner antes de iniciar
Dockerfile
.
RUN echo CREDENTIALS: $CREDENTIALS
ARG user="${CREDENTIALS%/*}"
ARG password="${CREDENTIALS#*/}"
ENV USER $user
ENV PASSWORD $password
Statefulset
ambiente:
env:
- name: CREDENTIALS
valueFrom:
secretKeyRef:
name: app-secret
key: CREDENTIALS
Quando corro com d run -dt -e CREDENTIALS="user/P@$$w0rd" myimage:latest
, o PASSWORD
está faltando.
Você entendeu errado como o Dockerfile ARG e ENV funcionam. Esses valores são todos incorporados à imagem do contêiner no momento da construção. Você precisa modificar o ponto de entrada do seu contêiner para dividir
$CREDENTIALS
em variáveis USER e PASSWORD separadas, por exemplo, com um pequeno script: