为什么 set -m 不起作用?给我错误作业控制已关闭!

为什么 set -m 不起作用?给我错误作业控制已关闭!

我正在尝试执行 docker 容器的入口脚本。我已经从 php-fpm alpine linux (7.3 版本)构建了这个图像。一旦容器启动,它应该事先执行一些命令,我​​知道 docker 容器适用于单个进程。但我无法启动另一个容器来执行单个命令。因此,我正在运行一个入口脚本来执行此操作,其中我必须暂时挂起主进程来执行一些命令,然后恢复 php-fpm.conf 的主进程。所以通常我在脚本中使用 set -m 命令并暂停 php-fpm 在后台运行。执行命令后,php-fpm 将使用命令 fg %1 返回到前台。下面是我的入口点脚本 my_wrapper_script.sh

#!/bin/bash
set -m
php-fpm &
php artisan swagger-lume:generate
fg %1

下面是我的 Dockerfile

FROM php:7.3-fpm-alpine
WORKDIR /var/www

RUN apk update && apk add \
    postgresql-dev \
    build-base \
    freetype-dev \
    libjpeg-turbo-dev \
    libpng-dev \
    libzip-dev \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl

RUN docker-php-ext-install pdo_pgsql pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd

RUN addgroup -g 1000 -S www && \
adduser -u 1000 -S www -G www

USER www

 
ADD ./my_wrapper_script.sh /usr/sbin/my_wrapper_script.sh
COPY --chown=www:www . /var/www
EXPOSE 9000    
ENTRYPOINT ["sh","/usr/sbin/my_wrapper_script.sh"]

相关内容