Tengo el siguiente Dockerfile que falla en el paso que compila TypeScript:
FROM node:12 WORKDIR /usr/src/app # SETUP COPY package.json . COPY tsconfig.json . COPY src . RUN npm install -g yarn@^1.16.0 RUN yarn install # BUILD RUN npx tsc <------------------------El mensaje de error es muy confuso:
File '/usr/src/app/app.ts' is not under 'rootDir' '/usr/src/app/src'. 'rootDir' is expected to contain all source files. Esto no tiene sentido... Está encontrando app.ts en la carpeta src y luego se queja de que no está en la carpeta src .
Archivos:
src app.ts tsconfig.json Dockerfile¿Cómo soluciono este problema?
Aquí está mi tsconfig.json :
{ "compilerOptions": { ... "rootDir": "./src", "outDir": "./build", ... } }Wow, era un problema tan simple que no estaba relacionado con TypeScript.
No hice el comando COPY correctamente.
Al copiar archivos, puede hacer COPY <filename> .
Pero aparentemente para directorios debes hacer COPY <dirname> <dirname>
Así que arreglé esto cambiando COPY src . para COPY src src .