【问题标题】:rpc eror whe using build comman in docker-compose在 docker-compose 中使用构建命令时出现 rpc 错误
【发布时间】:2021-02-15 10:51:11
【问题描述】:

我在windwos10 中使用Docker 桌面。我有一个带有 2 个容器的 docker compose 文件(一个带有一个简单的 python 和一个 mysql),当为 python 应用程序运行 docker 文件(它是多阶段的)时它工作正常,但是当尝试从 docker compose 运行它时我得到一个 rpc 错误,我一直试图在官方 docker 论坛中找到解决方案(因为我已经学习 docker 仅 2 周),但在这里我发现它没有任何工作(我尝试为 docker 提供更多内存桌面,限制每个容器使用的内存量......)。这是我的 dockerfile:

version: "3.7"
services:
  webapp:
    build: 
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      FLASK_ENV: development
      FLASK_RUN_HOST: 0.0.0.0
    mem_limit: 1GB
    networks:
      - app_network 

  mysql:
    image: mysql:8.0.13
    restart: always
    ports:
      - 3306:3306
    command: --init-file ./init.sql
    environment:
      MYSQL_ROOT_USER: "root"
      MYSQL_ROOT_PASSWORD: "admin"
      MYSQL_USER: "user-flask"
      MYSQL_PASSWORD: "password123"
    mem_limit: 1GB
    volumes:
      - ./schemas:/var/lib/mysql:rw
    networks:
      - app_network 
volumes:
  schemas: {}
networks:
  app_network:
    name: app_net
    driver: bridge

Dockerfile:

FROM python:3.8-alpine as builder
WORKDIR /code
COPY ./myapp/requirements.txt requirements.txt
RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && apk add --no-cache mariadb-dev
RUN pip install --user -r requirements.txt

FROM python:3.8-alpine
WORKDIR /code
RUN apk add --no-cache mariadb-dev
COPY --from=builder /root/.local /root/.local
ADD ./myapp .
ENV PATH=/root/.local:$PATH
ENV FLASK_APP App.py
ENV FLASK_RUN_HOST 0.0.0.0
ENV FLASK_RUN_PORT 3000
CMD ["python", "-m", "flask", "run"] 

这是我得到的输出错误:

#13 11.95 ERROR: unable to select packages:
#13 11.97   apk (no such package):
#13 11.97     required by: build-deps-20210215.104420[apk]
#13 11.97   add (no such package):
#13 11.97     required by: build-deps-20210215.104420[add]
------
failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apk update     && apk add --virtual build-deps gcc python3-dev musl-dev     apk add --no-cache mariadb-dev]: exit code: 3

是否有人至少暗示了在哪里寻找?到目前为止,我发现的只是为 Docker 桌面提供更多资源并将资源限制在容器中,但这似乎不起作用。

【问题讨论】:

    标签: docker docker-compose yaml dockerfile


    【解决方案1】:

    看起来你刚刚在下面的第三行中丢失了&&

    RUN apk update \
        && apk add --virtual build-deps gcc python3-dev musl-dev \
        apk add --no-cache mariadb-dev 
    

    【讨论】:

    • 对不起,这是一个复制粘贴错误,在我的原始文件中没问题,我已经在上面的描述中更新了它。所以这不是原因
    • 奇怪,因为一个错误消息指向这个错误。 apk (no such package): - 表示您尝试添加名为 apk 的包。也许现在你有另一个错误? :)
    • 好的,所以我尝试只运行 dockerfile 并运行容器,但我意识到我收到了这个错误(只是执行 dockerfile 而不是 docker-compose)MySQLdb._exceptions.OperationalError: (2059, 'Plugin mysql could not be loaded: Error loading shared library /usr/lib/mariadb/plugin/mysql.so: No such file or directory')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2021-08-30
    • 2021-10-10
    • 2018-05-04
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多