Docker / Angular4 / Nginx

Soy principiante en Docker y creé este Dockerfile

FROM nginx:1.13-alpine ENV APP_PATH /app ENV PATH $APP_PATH/node_modules/@angular/cli/bin/:$PATH RUN apk add --update --no-cache nodejs && mkdir $APP_PATH && rm -rf /etc/nginx/conf.d/* WORKDIR $APP_PATH COPY . . COPY nginx/default.conf /etc/nginx/conf.d/ RUN npm install \ && ng build --aot --prod \ && rm -rf /usr/share/nginx/html/* \ && mv ./dist/* /usr/share/nginx/html/ \ && npm cache clean \ && apk del nodejs libstdc++ libgcc libuv http-parser ca-certificates \ && rm -rf ./* CMD ["nginx", "-g", "daemon off;"] 

y configuration de Nginx

 server { listen 80; sendfile on; default_type application/octet-stream; gzip on; gzip_http_version 1.1; gzip_disable "MSIE [1-6]\."; gzip_min_length 256; gzip_vary on; gzip_proxied expinetworking no-cache no-store private auth; gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_comp_level 9; root /usr/share/nginx/html; location / { try_files $uri $uri/ /index.html =404; } } 

Construyo la construcción del docker build --rm -t appName -f Dockerfile . image docker build --rm -t appName -f Dockerfile . y ejecute el contenedor docker run -it -p 8080:80 appName

Todo está bien. Pero tengo un problema. No puedo cambiar mi código de forma interactiva. Me comprometo a cambiar mi docker commit ... Reinicio mi contenedor varias veces, pero no pasó nada. Apreciaría cualquier consejo.

Docker le permite copyr files mientras construye la image o puede montar el directory / files locales mientras ejecuta el contenedor. Al mirar tu file Docker, parece que estás copyndo el código en la image mientras construyes, por lo que el estado en el que se encuentran tus files mientras construyes la image es lo que obtendrás cuando ejecutes el contenedor.

Supongo que está utilizando Linux / Mac, a continuación se muestra un ejemplo para montar el directory de su proyecto dentro del contenedor acoplable:

 $ docker run -v "$PWD/dist:/usr/share/nginx/html" -it -p 8080:80 appName 

Ahora, cualquier cambio en los files en el sistema operativo host se reflejará en el contenedor acoplable.

Nota: su file de docker está bien, pero puede realizar mejoras leyendo artículos en Internet.