Dockerfile:
FROM node:14
WORKDIR /code
COPY ./code/package.json ./code/package-lock.json /code/
RUN npm install
COPY ./code /code
CMD [ "npm", "run", "build"]
docker-compose.yml:
version: '3'
services:
medace-lecture-capsules:
build: ./app
container_name: medace-lecture-capsules
restart: always
expose:
- "3000"
networks:
- shared
networks:
shared:
external:
name: shared
docker-compose 日志:
Attaching to medace-lecture-capsules
medace-lecture-capsules |
medace-lecture-capsules | > medace-frontend-lecture-capsules@0.1.0 build /code
medace-lecture-capsules | > react-scripts build
medace-lecture-capsules |
medace-lecture-capsules | Creating an optimized production build...
medace-lecture-capsules | Compiled successfully.
medace-lecture-capsules |
medace-lecture-capsules | File sizes after gzip:
medace-lecture-capsules |
medace-lecture-capsules | 130.34 KB build/static/js/2.dd4b4a7b.chunk.js
medace-lecture-capsules | 3.83 KB build/static/js/main.725c12bb.chunk.js
medace-lecture-capsules | 970 B build/static/css/main.aae65096.chunk.css
medace-lecture-capsules | 791 B build/static/js/runtime-main.15e7259b.js
medace-lecture-capsules |
medace-lecture-capsules | The project was built assuming it is hosted at /.
medace-lecture-capsules | You can control this with the homepage field in your package.json.
medace-lecture-capsules |
medace-lecture-capsules | The build folder is ready to be deployed.
medace-lecture-capsules | You may serve it with a static server:
medace-lecture-capsules |
medace-lecture-capsules | npm install -g serve
medace-lecture-capsules | serve -s build
medace-lecture-capsules |
medace-lecture-capsules | Find out more about deployment here:
medace-lecture-capsules |
medace-lecture-capsules | https://cra.link/deployment
medace-lecture-capsules |
我使用了 docker-compose build,然后是 docker-compose up -d,但是容器在創建構建后以某種方式設法退出。我想運行一個生產服務器,這就是我使用 npm run build 的原因。嘗試 serve -s build 但最終在加載網頁時出現 404 錯誤。
uj5u.com熱心網友回復:
您的命令似乎是您的編譯命令。
容器的 CMD 命令需要像這樣永遠運行
CMD node app.js
或者 CMD npm start
另外..一些與您的問題無關的東西,如果您使用 npm install 我認為您的鎖定檔案將被忽略并重新生成。要準確安裝鎖定檔案中的內容,請使用
RUN npm ci
抱歉 - 告訴你為什么它在我的手機上不起作用比如何讓它作業更容易
FROM node:14
WORKDIR /code
COPY ./code/package.json ./code/package-lock.json /code/
RUN npm ci # install what is in lock file no package file
COPY ./code /code
RUN npm run build
RUN npm install -g serve
CMD serve -s build 3000
然后如果你想在本地嘗試服務,你可以npm install serve在你的專案中添加并保存包和包鎖定檔案,然后你就不必serve在你的容器中全域安裝,所以它變成:
FROM node:14
WORKDIR /code
COPY ./code/package.json ./code/package-lock.json /code/
RUN npm ci # install what is in lock file no package file
COPY ./code /code
RUN npm run build
# the port for the following should match the one you are exposing with docker compose:
CMD ./node_modules/.bin/serve -s build 3000
將依賴項添加serve到專案后
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370047.html
標籤:反应 码头工人 docker-compose 文件
