GNU/Linux >> Linux の 問題 >  >> Linux

コンテナー内で docker-compose コマンドからシェル スクリプトを実行します。

まず、あなたは 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
  1. シェルスクリプトの「sudoSu」がスクリプトの残りの部分をルートとして実行しないのはなぜですか?

  2. 実行中のSystemdコンテナ内でコマンドを実行する方法は?

  3. シェルスクリプトはどこから実行されますか?

  1. $の意味は?シェルスクリプトでは?

  2. シェルからPythonスクリプトを実行する方法

  3. シェルスクリプトの並列実行

  1. Bash スクリプト:セッションをログに記録するための bash スクリプトからのスクリプト コマンドの使用

  2. stdin からパイプされたスクリプトを実行する (Linux/シェル スクリプト)

  3. シェルから Vim コマンドを実行するには?