まず、あなたは entrypoint.sh
をコピーしています $APP
まで これはビルド引数から渡されましたが、それについて言及していませんでした.2番目に entrypoint.sh
の許可を設定する必要があります . command
を追加する必要がないように、これらの 3 行を追加することをお勧めします。 docker-compose ファイル内。
FROM python:3.6-alpine3.7
RUN apk add --no-cache --update \
python3 python3-dev gcc \
gfortran musl-dev \
libffi-dev openssl-dev
RUN pip install --upgrade pip
ENV PYTHONUNBUFFERED 1
ENV APP /app
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir $APP
WORKDIR $APP
ADD requirements.txt .
RUN pip install -r requirements.txt
COPY . .
# These line for /entrypoint.sh
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
entrypoint "/entrypoint.sh"
API の docker compose は
api:
build: .
container_name: app
expose:
- "5000"
または、自分のものを使用することもできます。
version: "2"
services:
api:
build: .
container_name: app
command: /bin/sh -c "entrypoint.sh"
expose:
- "5000"
docker run コマンドでも確認できるようになりました。
docker run -it --rm myapp
linux-x64 バイナリは linuxmusl-x64 プラットフォーム エラーで使用できません
docker compose:共有ライブラリの読み込み中にエラーが発生しました:libz.so.1:共有オブジェクトからセグメントをマップできませんでした:操作は許可されていません