ingrese la descripción de la imagen aquí
Cuando ejecuto la aplicación localmente, se ejecuta normalmente, pero cuando intento ejecutar el contenedor docker de la aplicación, recibo este error como en la pantalla. Es mi archivo Docker:
FROM node:14.0.0 WORKDIR /app ARG DATABASE_URL ARG AWS_REGION ARG CLIENT_ID ARG USER_POOL_ID ARG AWS_IOT_PUBLIC_TOPIC_NAME ARG AWS_ACCESS_KEY_ID ARG AWS_ACCESS_SECRET_KEY_ID ARG AWS_ELASTIC_SERVICE_URL ARG PORT ARG IDENTIFY_POOL_ID ARG MQTT_ENDPOINT COPY package.json package-lock.json* ./ RUN npm install COPY . /app ENV DATABASE_URL=$DATABASE_URL ENV REGION=$AWS_REGION ENV CLIENT_ID=$CLIENT_ID ENV USER_POOL_ID=$USER_POOL_ID ENV AWS_IOT_PUBLIC_TOPIC_NAME=$AWS_IOT_PUBLIC_TOPIC_NAME ENV AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID ENV AWS_ACCESS_SECRET_KEY_ID=$AWS_ACCESS_SECRET_KEY_ID ENV AWS_ELASTIC_SERVICE_URL=$AWS_ELASTIC_SERVICE_URL ENV PORT=$PORT ENV IDENTIFY_POOL_ID=$IDENTIFY_POOL_ID ENV MQTT_ENDPOINT=$MQTT_ENDPOINT RUN printenv EXPOSE 5001 CMD npm run startPuede resolver esto montando en enlace su archivo de credenciales en el contenedor:
docker run -v $HOME/.aws:/root/.aws ...No me gusta hacer esto, porque significa que algo dentro del contenedor puede cambiar los archivos en su directorio de maneras que no espera (y hacerlos propiedad de root).
En cambio, prefiero usar variables de entorno para mantener mis credenciales y pasarlas a Docker usando -e :
docker run -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_DEFAULT_REGION -e AWS_REGION ... Tenga en cuenta que estas variables ya deben estar definidas en su entorno para pasarlas como -e VARNAME (y no debe usar -e VARNAME=VALUE porque eso hace que las claves sean visibles con ps ).