skip to Main Content

My Docker file

# FROM node:16.14.2
FROM node:alpine

ENV NODE_ENV=production

WORKDIR /app

COPY ["package.json", "package-lock.json", "./"]

RUN npm install

COPY . .

CMD [ "npm", "start"]

Command to run image: docker run -it -d -p 4001:4001 react-app:test2

Project structure

project structure

Output after docker run
result after docker run

2

Answers


  1. Based on this context, a possible mistake for me is basically that you do not copy the rest of the source code correctly.

    Try to be more consistent in the Dockerfile, also have a look at the multistage Docker build (within the same file) to optimise the image.
    Anyway, your file should be something like:

    FROM node:16-alpine
    
    ENV NODE_ENV=production
    
    WORKDIR /app
    
    COPY ["package.json", "package-lock.json", "./"]
    
    RUN npm install
    
    COPY . ./
    
    CMD [ "npm", "start"]
    
    Login or Signup to reply.
  2. Based on the code in the repo, I managed to spot the following problem.It’s neither the Dockerfile, nor the code itslef. It throws some warnings though.

    Implicitly, the application is supposed to be running on port 3000, if it is not chnaged manually at some point (in this project there are only default settings). Thus the application starts correclty on port 3000, However you expose 4001:4001. On this port nothing is running according to this Dockerfile.

    Try using port 3000 instead and it should work just fine:

     docker run -it -d -p 3000:3000 <image-name>:<image-tag>
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search