In our project react app, we need to create a file “Dockerfile”
FROM node:12-alpine3.12 AS build
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
ENV REACT_APP_NAME = myName
RUN npm run build
#Image NGINX
FROM nginx:1.19.0-alpine AS prod-stage
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
Buildin an Image with Dockerfile:
Creat container with ports:
docker build -t "name-image" .
docker run -d -p 3000:3000 --name "name-container" "name-image(before image create)"
Creat container bind mounts to sync src code with POWERSHELL:
docker run -e CHOKIDAR_USEPOLLING=true -v ${pwd}\\src:/app/src -d -p 3000:3000 --name "name-container" "image-docker"
Creat container bind mounts to sync src code with Command line:
docker run -e CHOKIDAR_USEPOLLING=true -v %cd%\\src:/app/src -d -p 3000:3000 --name "name-container" "image-docker"
Creat container bind mounts to sync src code with LINUX:
docker run -v $(pwd)/ src:/app/src -d -p 3000:3000 --name "name-container" "image-docker"
Creat container Read Only bind mounts
docker run -v ${pwd}/ src:/app/src:ro -d -p 3000:3000 --name "name-container" "image-docker"
To create .dockerignore
To copy the .gitignore or the next file
.dockerignore:
node_modules
.git
.gitignore
.dockerignore
.env
docker volumes
docker run -d --name container_postgres_volume --mount src=db_postgres,dst=/data/db postgres