Error response from daemon: unable to find user www: no matching entries in passwd file


I have error like that when I run docker-compose up -d --build

and this is my docker-compose

# Started using https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose
# Then added additional commonly required services
version: '3'
services:

  # PHP Application Service
  app:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    image: php:8-fpm
    container_name: applwddocker
    restart: unless-stopped
    tty: true
    environment:
      SERVICE_NAME: app
      SERVICE_TAGS: dev
    working_dir: /var/www
    volumes:
      - ./:/var/www
      - ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
    networks:
      - lwd-docker-network
    depends_on:
      - db

  # Nginx Service
  webserver:
    image: nginx:alpine
    container_name: webserverlwddocker
    restart: unless-stopped
    tty: true
    ports:
      - "880:80"
      - "8443:443"
    volumes:
      - ./:/var/www
      - ./docker/nginx/conf.d/:/etc/nginx/conf.d/
    networks:
      - lwd-docker-network
    depends_on:
      - app

  # MariaDB Service - drop-in replacement of MySQL for performance, stability, and openness
  # Made by the original developers of MySQL and guaranteed to stay open source
  # If you want to connect from any external SQL Client, use port: 33061
  db:
    image: mariadb:10.5.18
    container_name: lwddockermariadb
    restart: unless-stopped
    tty: true
    ports:
      - "33061:3306"
    environment:
      MYSQL_DATABASE: test
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_USER: test_root
      MYSQL_PASSWORD: '123456'
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - dbdata:/var/lib/mysql
      - ./docker/mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - lwd-docker-network

  phpmyadmin:
    image: phpmyadmin
    container_name: phpmyadminlwddocker
    restart: always
    ports:
      - 8081:80
    environment:
      - PMA_ARBITRARY=1
    networks:
      - lwd-docker-network
    depends_on:
      - db


  # MailHog - Web and API based SMTP testing
  # Replacement of mailcatcher, MailTrap etc.
  # Update .env params:
  #     MAIL_HOST=mailhog
  #     MAIL_PORT=1025
  # Done! Your inbox for all email is ready at http://localhost:8025
  # Comment out the service if you don't need email
  # mailhog:
  #   image: mailhog/mailhog
  #   container_name: mailhog
  #   networks:
  #     - lwd-docker-network
  #   ports:
  #     - 1025:1025 # smtp server
  #     - 8025:8025 # web ui

#Docker Networks
networks:
  lwd-docker-network:
    driver: bridge

#Volumes
volumes:
  dbdata:
    driver: local

There is no www user in the container, which is true as it is called www-data. So your php config must be wrong referrig to a non-existing user.

Ah I see, this is my docker file inside /docker/php

FROM php:8-fpm

WORKDIR /var/www
USER root
RUN apt-get update && apt-get install -y \
    build-essential \
    mariadb-client \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    locales \
    libzip-dev \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl \
    libmagickwand-dev --no-install-recommends

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

RUN docker-php-ext-configure gd --with-freetype --with-jpeg

RUN docker-php-ext-install pdo_mysql gd exif pcntl bcmath

RUN pecl install imagick zip  \
    && docker-php-ext-enable imagick zip

with-png-dir=/usr/include/
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Change current user to www
USER www

# Expose port 9000 and start php-fpm server
EXPOSE 9000
CMD ["php-fpm"]

there is USER WWW and it’s running well if I delete it.

@rimelek Thank you so much