https://docs.docker.com/engine/reference/builder/#...
ARG объявленные до FROM попадают в global scope. И на практике их можно использовать напрямую только в FROM.
Что бы их было видно внутри сборки их нужно заново объявить внутри сборки.
# Arguments.
ARG NGINX_VERSION
ARG APP_CODE_PATH_CONTAINER
# Install nginx.
FROM nginx:${NGINX_VERSION}-alpine
# Load scripts.
COPY scripts/* /tmp/scripts/
RUN chmod -R 777 /tmp/scripts/
# объявляем ещё раз. Как можно ближе к реальному месту использования что бы не испортить кеширование директив выше.
ARG APP_CODE_PATH_CONTAINER
# Modify configuration.
RUN /tmp/scripts/modify_config.sh /etc/nginx/conf.d/default.conf "__NGINX_ROOT" ${APP_CODE_PATH_CONTAINER};
...