DEV Community

Discussion on: Deploy Your React App to ECS (Fargate)

Collapse
 
mubbashir10 profile image
Mubbashir Mustafa

Hi, thanks for stopping by. Let's take a step back, could u please mention why you need to run your production app in the interactive mode? (it will help me propose a possible solution) - thanks.

Collapse
 
kokkoon profile image
KK

Thanks for pointing out "why must I run the container in interactive mode?"... instead of looking at how to run container with -it in AWS, I seems managed to get around the interactive mode requirement by adding ENV CI=true to the dockerfile... i am not sure if that fixed the -it requirement, but i can run it without interactive mode now.

Collapse
 
kokkoon profile image
KK

Hi Mubbashir,

If I run without the interactive mode with below cli

docker run --rm --name=my-react-app --network=mynetwork -p 3000:3000 my-react-app-image

I am getting the server stopped at "Starting the development server..." as shown below:

client@0.1.0 start /usr/src/app
react-scripts start

[HPM] Proxy created: /auth/google -> my-node-server:5000
[HPM] Proxy created: /api/* -> my-node-server:5000
ℹ 「wds」: Project is running at 172.18.0.2/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /usr/src/app/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...

my dockerfile is simple:

pull official base image

FROM node:12-slim

set working directory

WORKDIR /usr/src/app

install app dependencies

COPY package*.json ./
RUN npm install
RUN npm install react-scripts@3.4.1 -g

add app

COPY . ./

start app

CMD ["npm", "start"]

But if I run it in my node js console using "npm start" i can start my dev without issue...

Thanks,

Thread Thread
 
mubbashir10 profile image
Mubbashir Mustafa

Ah, so you are trying to use it for development purposes. When we deploy on ECS, we do it for production. For production, you need to use a multistage docker (first build the react app, second copy the built files and serve using Nginx - no nodejs server involved).

For development, you don't need to use ECS. That's something that you will be doing on your local machine, and it's totally fine to use -it for it. You may also want to attach volume to your code directory if you are developing via docker :)