GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecute un script de shell desde el comando docker-compose, dentro del contenedor

Lo primero, estás copiando entrypoint.sh a $APP que pasó de sus argumentos de compilación pero no lo mencionó y, en segundo lugar, debe establecer el permiso para entrypoint.sh . Es mejor agregar estas tres líneas para que no necesite agregar command en el archivo 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"

docker compose para api será

  api:
    build: .
    container_name: app
    expose:
      - "5000"

o puede usar el suyo también funcionará bien

version: "2"

services:
  api:
    build: .
    container_name: app
    command: /bin/sh -c "entrypoint.sh"
    expose:
      - "5000"

Ahora también puede verificar con el comando de ejecución de la ventana acoplable.

docker run -it --rm myapp


Linux
  1. Usando el comando passwd desde dentro de un script de shell

  2. Ejecutar script de shell en paralelo

  3. Script bash:usar el comando de script desde un script bash para iniciar sesión

  4. ¿Cómo puedo ejecutar una función desde un script en la línea de comandos?

  5. Ejecute un script canalizado desde stdin (Linux/Shell Scripting)

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

Googler:ejecuta búsquedas en Google desde la línea de comandos

¿Por qué "sudo Su" en un script de Shell no ejecuta el resto del script como root?

¿Cómo ejecutar un comando dentro de un contenedor Systemd en ejecución?

¿Desde dónde se ejecuta un script de Shell?

¿Cómo ejecutar un comando en un script de Shell?