Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

SimonAngatia's avatar

sail npm run dev says container not running yet it is running.

I have a project set up on docker WSL 2. The project was not initially running in a docker container but I dockerized it. All the services are running but when I run sail npm run dev, I sail gives the following logs:

./.env: line 7: $'\r': command not found
./.env: line 11: $'\r': command not found
./.env: line 18: $'\r': command not found
./.env: line 25: $'\r': command not found
./.env: line 27: $'\r': command not found
./.env: line 31: $'\r': command not found
./.env: line 40: $'\r': command not found
./.env: line 46: $'\r': command not found
./.env: line 54: $'\r': command not found
service "web-app\r" is not running container #1

I got a post somewhere that suggested that I should add the APP_SERVICE to the .env file, I did that but still it doesn't work. What could be the problem here? This is my docker-compose.yml configuration:

version: '3'
services:
    web-app:
        build:
            context: ./vendor/laravel/sail/runtimes/8.2
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.2/app
        container_name: web-app
        extra_hosts:
            - 'host.docker.internal:host-gateway'
        ports:
            - '${APP_PORT:-80}:80'
            - '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
            XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
            XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
    mysql:
        image: 'mysql/mysql-server:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ROOT_HOST: '%'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 1
        volumes:
            - ./sail/dump:/docker-entrypoint-initdb.d
            - ./sail/conf:/etc/mysql/conf.d
            - 'sail-mysql:/var/lib/mysql'
            - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
        networks:
            - sail
        healthcheck:
            test:
                - CMD
                - mysqladmin
                - ping
                - '-p${DB_PASSWORD}'
            retries: 3
            timeout: 5s
    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      links:
        - mysql:mysql
      ports:
        - 8080:80
      environment:
        MYSQL_USERNAME: "${DB_USERNAME}"
        MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
        PMA_HOST: mysql
        UPLOAD_LIMIT: 300M
      networks:
          - sail            
networks:
    sail:
        driver: bridge
volumes:
    sail-mysql:
        driver: local

vite.config.js

import { defineConfig } from 'vite';
import vue from "@vitejs/plugin-vue";
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                "resources/js/frontend/app.js",
                "resources/js/frontend/mobile.js",
                "resources/js/login/login.js",
            ],
            refresh: true,
        }),
        vue(),
    ],
    server: {
        hmr: {
            host: 'localhost',
        },
        watch: {
            usePolling: true
        }
    },
});

0 likes
14 replies
LaryAI's avatar
Level 58

It looks like the issue is related to the line endings in your .env file. Windows and Unix systems use different line endings, and it looks like your .env file is using Windows line endings. To fix this, you can use the dos2unix command to convert the line endings to Unix format.

dos2unix .env

Once you've done that, try running sail npm run dev again and it should work.

MohamedTammam's avatar

Maybe you're running that command from a different console session.

Try the following

  1. Stop all containers
  2. Open WSL console
  3. run sail up -d
  4. from the same console run sail npm run dev
SimonAngatia's avatar

@MohamedTammam I have a docker desktop and I am able to view the running containers. The app can be accessed through port 80. However, the network port(51730) isn't accessible.

frankielee's avatar
Level 29

@SimonAngatia as @laryai suggested, make sure all the files involved like

  • .env
  • start-container (entry point file)

etc has the line ending "LF".

After converting all the relevant files, run sail up --build --no-cache -d again

SimonAngatia's avatar

@frankielee Thank you. But when I re-run sail npm run dev, I now get an error saying that sh: 1: vite: not found.

Please or to participate in this conversation.