在Docker中以生产模式运行create-react-app

时间:2019-09-26 21:02:17

标签: reactjs docker create-react-app

我正在尝试在生产模式下在docker容器中运行一个create-react-app项目。我有以下Dockerfile。

circle xs = let trim ys = zipWith const ys xs
            in trim . map trim . iterate tail . cycle $ xs

*Main> circle "abc"
["abc","bca","cab"]

每次运行此容器时,我得到FROM node:10 # Create app directory WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@5+) COPY package*.json ./ RUN npm install RUN npm install serve RUN yarn global add serve # If you are building your code for production # RUN npm ci --only=production # Bundle app source COPY . . EXPOSE 5000 CMD serve -s build ,但端口5000上什么也没有显示。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

您正在容器中运行Web服务器。它在端口上侦听。您需要知道端口,然后发布它。

例如,您发现您的Web服务器侦听端口5000。然后,您可以使用命令行参数docker run -p 5000:5000

发布端口。

EXPOSE不会发布端口,它只会在容器内记录一些元信息,docker run -P可以使用此信息。大写的'P'表示:请发布所有暴露的端口。很少这样做,因此EXPOSE的使用更像是DOCKERFILE用户对您希望他们进行的docker run -p XXXX:YYYY端口发布的提示。