ошибка rpc при использовании build comman в docker-compose

#docker #docker-compose #yaml #dockerfile

#докер #docker-создать #ямл #докерфайл

Вопрос:

Я использую Docker desktop в windwos10. У меня есть файл docker compose с 2 контейнерами (один с простым python и mysql) при запуске файла docker (который является многоступенчатым) для приложения python, он работает нормально, но при попытке запустить его из docker compose я получаю ошибку rpc, которая у меня была для одногодень, пытаясь найти решение на официальных форумах docker (поскольку я изучаю docker всего 2 недели) и здесь, но я ничего не нашел, что это работает (я попытался выделить больше памяти для docker desktop, ограничив объем памяти, который использует каждый контейнер …). Это мой файл 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 
    amp;amp; apk add --virtual build-deps gcc python3-dev musl-dev 
    amp;amp; 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     amp;amp; apk add --virtual build-deps gcc python3-dev musl-dev     apk add --no-cache mariadb-dev]: exit code: 3
 

У кого-нибудь есть хотя бы намек на то, где искать? Все, что я нашел до сих пор, связано с предоставлением большего количества ресурсов Docker desktop и ограничением ресурсов контейнерами, но это, похоже, не работает.

Ответ №1:

Похоже, что вы только что потеряли amp;amp; в третьей строке ниже

 RUN apk update 
    amp;amp; apk add --virtual build-deps gcc python3-dev musl-dev 
    apk add --no-cache mariadb-dev 
 

Комментарии:

1. извините, это была ошибка копирования вставки, в моем исходном файле все было в порядке, я обновил его в описании выше. Так что это не причина

2. Странно, потому что сообщение об ошибке указывает на эту ошибку. apk (no such package): — означает, что вы пытаетесь добавить пакеты, которые вызывались apk . Может быть, теперь у вас есть другая ошибка? 🙂

3. хорошо, итак, я попытался запустить только 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')