如上所述,我有一个文件所有者的问题与Laravel安装。https://www.fullstaq.com/knowledge-hub/blogs/docker-and-the-host-filesystem-owner-matching-problem这个网站有解决方案。但在这个网站上的dockerfile的例子是为debian。
我想创建apache dockerfile.so不适合我想做的事情。
下面是我的dockerfile和docker-compose.yml。
# Dockerfile
FROM php:7.3-apache
COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf
COPY --from=composer:2.0 /usr/bin/composer /usr/bin/composer
RUN apt-get update \
&& apt-get -y install \
git \
zip \
unzip \
vim \
&& docker-php-ext-install pdo_mysql bcmath mbstring \
&& a2enmod rewrite
WORKDIR /var/www/html
EXPOSE 80
# I added below the code,but An error occurred with the code.
ARG uid
RUN useradd -G www-data,root -u $uid -d /home/devuser devuser
RUN mkdir -p /home/devuser/.composer && \
chown -R devuser:devuser /home/devuser
# docker-compose.yml
version: '3'
services:
backend:
build:
context: ./docker/php
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- ./src/backend:/var/www/html
# - /etc/group:/etc/group:ro
# - /etc/user:/etc/user:ro
depends_on:
- db
db:
build:
context: ./docker/mysql
dockerfile: Dockerfile
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
volumes:
- ./docker/mysql/data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=pass
我的文件夹有什么问题?
谢谢你的帮助。
1条答案
按热度按时间nwlls2ji1#
你来这里的错误是
这是因为
您指定了在以下
RUN
指令中使用的内部版本ARG
。但在使用docker-compose
生成映像时,没有为该ARG
指定实际值。因此,在构建时,它将被替换为空字符串,并且执行的命令变为
您需要使用
docker-compose.yml
中的args
属性为uid
指定一个值(即主机系统上用户的uid):