Tengo una aplicación node.js creada con Dockerfile que define:
CMD node dist/bin/index.js Me gustaría "agregar" un parámetro al comando tal como está definido en Dockerfile, es decir, quiero ejecutar el programa como node dist/bin/index.js foo .
En docker land puedo lograr esto a través de:
docker build --tag test . docker run test foo En
kubernetes No puedo usar command porque eso anulará el ENTRYPOINT . No puedo usar args porque eso anulará el cmd definido en el Dockerfile . Parece que mi única opción es:
cmd: ["node", "dist/bin/index.js", "foo"] ¿Hay alguna manera de agregar un argumento a un comando de contenedor sin redefinir toda la definición de CMD de Docker?
No hay manera de agregar. Puede configurar el command: o args: en container.spec. Puede obtener más información sobre cómo anular CMD/ENTRYPOINT aquí: https://kubernetes.io/docs/concepts/configuration/container-command-args/
Es posible que pueda lograr el mismo efecto utilizando un parámetro opcional en su Dockerfile:
ENV YOUR_OPTIONAL_PARAM CMD node dist/bin/index.js $YOUR_OPTIONAL_PARAMNo hay forma de lograr lo que desea, excepto configurar el cmd , como mencionó.