我正在尝试使用nginzx,flask和react创建一个docker-compose设置。我使用react-create- app(https://github.com/facebook/create-react- app)启动了我的react应用程序,但尚未对其进行任何更改。
我的react应用程序的Dockerfile是:
FROM node:10 WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied COPY package*.json ./ RUN npm install --verbose # Bundle app source COPY . . EXPOSE 3000 CMD ["npm", "start"]
撰写脚本为:
version: '3.1' services: nginx: image: nginx:1.15 container_name: nginx volumes: - ../:/var/www - ./nginx-dev.conf:/etc/nginx/conf.d/default.conf ports: - 80:80 networks: - my-network depends_on: - flask - react react: build: context: ../react-app/ dockerfile: ./Dockerfile container_name: react volumes: - ../react-app:/usr/src/app networks: my-network: aliases: - react-app expose: - 3000 ports: - "3000:3000" flask: ... networks: my-network:
flask和nginx容器启动正常,react的输出为:
react | react | > react-app@0.1.0 start /usr/src/app react | > react-scripts start react | react | ℹ 「wds」: Project is running at http://my-ip-address/ react | ℹ 「wds」: webpack output is served from react | ℹ 「wds」: Content not from webpack is served from /usr/src/app/public react | ℹ 「wds」: 404s will fallback to / react | Starting the development server... react | react | react | npm verb lifecycle react-app@0.1.0~start: unsafe-perm in lifecycle true react | npm verb lifecycle react-app@0.1.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/usr/src/app/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin react | npm verb lifecycle react-app@0.1.0~start: CWD: /usr/src/app react | npm info lifecycle react-app@0.1.0~poststart: react-app@0.1.0 react | npm verb exit [ 0, true ] react | npm timing npm Completed in 1727ms react | npm info ok react exited with code 0
添加:stdin_open: true到我的docker-compose文件的React组件中,解决了我的问题。
stdin_open: true