joh*_*yan 13 livereload docker reactjs webpack docker-compose
我想知道是否有人使用dock-react-app和docker有任何经验.我能够使用Dockerfile设置它:
from node
RUN mkdir /src
WORKDIR /src
ADD package.json /src/package.json
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
然后使用docker-compose文件,如:
app:
volumes:
- "./app:/src"
ports:
- "3000:3000"
- "35729:35729"
build: ./app
Run Code Online (Sandbox Code Playgroud)
这允许我启动容器并查看应用程序.但是,在挂载的卷中保存文件时livereload不起作用,webpack在src目录中创建了几个.json.gzip文件.
有任何建议让这个工作正常吗?
是的,正如aholbreich所提到的,我会在我的机器上使用npm install
/ local npm start
进行开发,因为它非常简单.它可能也可以docker-compose
,也可以安装音量等,但我认为设置它可能有点繁琐.
对于部署,您可以非常轻松地使用Dockerfile.这是我正在使用的Dockerfile示例:
FROM node:6.9
# Create app directory
RUN mkdir -p /src/app
WORKDIR /src/app
# to make npm test run only once non-interactively
ENV CI=true
# Install app dependencies
COPY package.json /src/app/
RUN npm install && \
npm install -g pushstate-server
# Bundle app source
COPY . /src/app
# Build and optimize react app
RUN npm run build
EXPOSE 9000
# defined in package.json
CMD [ "npm", "run", "start:prod" ]
Run Code Online (Sandbox Code Playgroud)
您需要将start:prod
选项添加到package.json:
"scripts": {
"start": "react-scripts start",
"start:prod": "pushstate-server build",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令在CI服务上运行测试:
docker run <image> npm test
Run Code Online (Sandbox Code Playgroud)
没有什么可以阻止你在本地运行这个docker容器,以确保按预期工作.
我最近创建了一个名为hello-docker-react的小项目,他正在寻找op正在寻找的东西.
它由docker-compose,create-react-app,yarn,节点图像和小入口点脚本组成.
实时重装工作完美无缺,我还没有发现任何问题.
https://github.com/lopezator/hello-docker-react
归档时间: |
|
查看次数: |
11631 次 |
最近记录: |