问题
I am trying to use docker-compose for react-typescript
application with webpack-dev-server
below is my Dockerfile
FROM node:lts-slim
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
EXPOSE 3000
CMD [ "npm", "start" ]
"start": "webpack-dev-server --port 3000"
this package.json
line
docker-compose.yml
version: "3"
services:
frontend:
container_name: awesome_web
build:
context: ./client
dockerfile: Dockerfile
image: webpack
ports:
- "3000:3000"
volumes:
- ./client:/usr/src/app
I executed command docker-compose up --build based on logs application compiled successfully
output of docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c88198ba996c webpack "docker-entrypoint.s…" 21 seconds ago Up 20 seconds 0.0.0.0:3000->3000/tcp awesome_web
but when I am trying to access localhost:3000 I am getting error This site can’t be reached
I am new to docker, following online blogs but I am not able to get why am I not able reach site?
回答1:
Try changing your start
script to:
webpack-dev-server --host 0.0.0.0 --port 3000
And your Dockerfile to:
FROM node:lts-slim
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app/
EXPOSE 3000
CMD [ "npm", "start" ]
Note: I highly advise against running your containers as root. You should always downgrade your user with the command USER ...
.
Security
According to this Snyk's report, you are using a vulnerable base image in addition to running it as root. I highly recommend you use this image instead. Furthermore, you should run your image as a non-root user:
FROM node:13.8.0-alpine
# don't run as root
RUN addgroup -S app_group && adduser -S -G app_group app_user
RUN mkdir -p /usr/src/app && chown app_user /usr/src/app
WORKDIR /usr/src/app
COPY --chown=app_user:app_group . /usr/src/app/
EXPOSE 3000
USER node
CMD [ "npm", "start" ]
USER app_user
回答2:
If you are using docker toolkit then there is virtual machine running for each container check your current container is running on which virtual machine get vm ip and browse with this url vm-ip:3000 Or if you are just running docker then try to open docker 0.0.0.0:3000 .
来源:https://stackoverflow.com/questions/60361324/this-site-can-t-be-reached-docker-compose