Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel useradd Dockerfile中的无效用户_Laravel_Docker_Sqlsrv - Fatal编程技术网

Laravel useradd Dockerfile中的无效用户

Laravel useradd Dockerfile中的无效用户,laravel,docker,sqlsrv,Laravel,Docker,Sqlsrv,我正在尝试将docker映像与Laravel+Microsoft SQL驱动程序一起使用 我的dockerfile: FROM php:7.2-apache ENV ACCEPT_EULA=Y # Microsoft SQL Server Prerequisites RUN apt-get update \ && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ &

我正在尝试将docker映像与Laravel+Microsoft SQL驱动程序一起使用

我的dockerfile:

FROM php:7.2-apache

ENV ACCEPT_EULA=Y

# Microsoft SQL Server Prerequisites
RUN apt-get update \
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/9/prod.list \
        > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get install -y --no-install-recommends \
        locales \
        apt-transport-https \
    && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
    && locale-gen \
    && apt-get update \
    && apt-get -y --no-install-recommends install \
        unixodbc-dev \
        msodbcsql17

RUN docker-php-ext-install mbstring pdo pdo_mysql \
    && pecl install sqlsrv pdo_sqlsrv xdebug \
    && docker-php-ext-enable sqlsrv pdo_sqlsrv xdebug

COPY index.php /var/www/html/


# We need a user with the same UID/GID as the host user
# so when we execute CLI commands, all the host file's permissions and ownership remain intact.
# Otherwise commands from inside the container would create root-owned files and directories.
ARG uid
RUN useradd -G www-data,root -o -u $uid -d /home/devuser devuser
RUN mkdir -p /home/devuser/.composer && \
    chown -R devuser:devuser /home/devuser
使用docker compose build生成时,我得到的用户无效:

useradd: invalid user ID '-d'
The command '/bin/sh -c useradd -G www-data,root -o -u $uid -d /home/devuser devuser' returned a non-zero code: 3

在shell中,
$something
是一个变量。您没有定义
$uid
,因此它最终是一个空字符串,因此命令最终是
useradd-gwww-data,root-o-u-d/home/devuser-devuser
,如果您忘记在构建时指定它,您应该有一个“default”分配来处理此问题,类似于
ARG uid=123
那么您认为解决此问题的最佳方法是什么?如上面的评论所述,在Dockerfile的参数中输入默认值,或者不要忘记传入docker-compose.yml