Esse é só um lembrete pro meu eu do futuro.
Para que uma variável definida no seu docker-compose.yml como args esteja disponível para seu Dockerfile e respectivos comandos (RUN/ENV), ele PRECISA ser enunciado no Dockerfile com o comando ARG.
No caso de enunciar antes da expressão FROM, você PRECISA repetir o enunciado após o mesmo – porque a imagem que você está estendendo pode ter removido/limpado as variáveis anteriores.
Segue um exemplo:
ARG PHP_VERSION FROM phusion/baseimage:latest ARG PHP_VERSION RUN apt-get install php${PHP_VERSION}-cli