Ter*_*ian 6 docker microservices docker-compose
我试图将我的应用程序分成两个 Docker 服务 - 前端和后端,我的项目布局看起来与此类似。
\n\n| frontend\n| - ...\n| - Dockerfile.prod\n| backend\n| - ...\n| - Dockerfile.prod\n| docker-compose.yml\nRun Code Online (Sandbox Code Playgroud)\n\n到目前为止,我只编写了前端的 dockerfile
\n\nFROM node:13.12.0-alpine as build\nWORKDIR /app\nENV PATH /app/node_modules/.bin:$PATH\nCOPY package.json ./\nCOPY package-lock.json ./\nRUN npm ci --silent\nRUN npm install react-scripts@3.4.1 -g --silent\nCOPY . ./\nRUN npm run build\n\nFROM nginx:stable-alpine\nCOPY --from=build /app/build /usr/share/nginx/html\nCOPY nginx/nginx.conf /etc/nginx/conf.d/default.conf\nEXPOSE 80\nCMD ["nginx", "-g", "daemon off;"]\nRun Code Online (Sandbox Code Playgroud)\n\n令我困扰的是,当我独立运行该图像时,一切都完美运行,但是当我尝试将其放入文件中时,docker-compose.yml此错误就会出现
$ \xee\x82\xb0 docker-compose.exe up -d --build\nBuilding frontend\nTraceback (most recent call last):\n File "docker-compose", line 6, in <module>\n File "compose\\cli\\main.py", line 72, in main\n File "compose\\cli\\main.py", line 128, in perform_command\n File "compose\\cli\\main.py", line 1077, in up\n File "compose\\cli\\main.py", line 1073, in up\n File "compose\\project.py", line 548, in up\n File "compose\\service.py", line 351, in ensure_image_exists\n File "compose\\service.py", line 1106, in build\n File "site-packages\\docker\\api\\build.py", line 148, in build\nTypeError: You must specify a directory to build in path\n[12540] Failed to execute script docker-compose\nRun Code Online (Sandbox Code Playgroud)\n\n我浏览过类似的问题,但由于某种原因,他们的建议似乎都不适用于我的场景。
\n\n这是我的docker-composer文件
version: \'3\'\n\nservices:\n frontend:\n container_name: react-prod\n build:\n context: .\n dockerfile: frontend/Dockerfile.prod\n ports:\n - 6666:80\nRun Code Online (Sandbox Code Playgroud)\n
jam*_*ani 14
在前端的 Dockerfile 中,您使用相对路径复制:COPY . ./。
当您使用 docker-compose 构建时,您提供的上下文将是.而不是其中包含 Dockerfile 的实际前端目录。所以我只是建议你也许在 docker-compose.yml 中而不是:
build:
context: .
dockerfile: frontend/Dockerfile.prod
Run Code Online (Sandbox Code Playgroud)
你应该有:
build:
context: ./frontend
dockerfile: Dockerfile.prod
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10737 次 |
| 最近记录: |