#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')