Saya mengembangkan situs web saya di OS Ubuntu, tetapi hari ini saya telah pindah ke Windows. sebelum pindah ke Windows Nodemon bisa berfungsi, tapi sekarang kalau saya klik simpan tidak restart.

Dockerfile

FROM node:current-alpine3.11

RUN mkdir /mbs_welfare

WORKDIR /mbs_welfare

COPY package.json /mbs_welfare/

RUN npm install

COPY . /mbs_welfare

RUN npm install -g nodemon

EXPOSE 3000

CMD ["nodemon","server.js"]

docker-compose.yml

version: "3.8"
services: 
    web:
        build: .
        restart: always
        ports: 
            - 3000:3000
        volumes: 
            - .:/mbs_welfare

    mysql_db:
        image: mysql:latest
        command: --default-authentication-plugin=mysql_native_password
        environment:
            MYSQL_ROOT_PASSWORD: ****
        ports:
            - 3306:3306
        volumes:
            - mysql_db:/var/lib/mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        ports:
            - 8000:80
        links:
            - mysql_db:db
        environment:
            MYSQL_USERNAME: root
            MYSQL_ROOT_PASSWORD: ****
            PMA_HOST: mysql_db

volumes:
    mysql_db:

package.json beberapa kode yang saya coba "mulai": "nodemon -L ./server.js" tetapi tidak berhasil

{
  "name": "welfare",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "dev": "nodemon ./server.js",
    "start": "nodemon ./server.js", 
    "test": "echo \"Error: no test specified\" && exit 1"
}

CMD

web_1 : [nodemon] 2.0.4
web_1 : [nodemon] to restart at any time, enter 'rs'
web_1 : [nodemon] watching path(s) *.*
web_1 : [nodemon] watching extensions: js,mjs,json
web_1 : [nodemon] starting 'node server.js'
web_1 : Server is running on port : 3000
1
Merphy 7 Juli 2020, 09:57

1 menjawab

Jawaban Terbaik

nodemon memerlukan pustaka inotify-tools untuk mendeteksi perubahan file di linux yang tidak ada pada wadah nodejs versi alpine. Anda dapat menginstalnya menggunakan apk add inotify-tools di file docker Anda.
Saya ingat bahwa versi Docker Desktop untuk Windows yang lebih lama tidak mendeteksi perubahan file pada ikatan file yang dipasang dari mesin Host (dengan kata lain jam tangan sistem file inotify-tools tidak berfungsi). Ini mungkin masih menjadi masalah jika Anda menginstal inotify-tools dan masih tidak mendeteksi perubahan file.
Anda harus memaksa nodemon untuk menggunakan polling pada kasus tersebut.
Akhirnya jika tidak ada yang berhasil untuk Anda, saya sarankan beralih ke WSL di Windows yang membuat Anda tidak pusing (saya kira WSL2 memiliki dukungan buruh pelabuhan asli yang luar biasa)

0
HosseinAgha 7 Juli 2020, 07:49