Docker pada Windows
Dalam panduan ini, anda akan menyebarkan MyEMS dengan Docker pada sistem Windows.
Prasyarat
- Docker dan npm telah dipasang pada hos.
- Pelayan MySQL telah dipasang.
- Pangkalan data MySQL boleh disambungkan dari hos di mana Enjin Docker berjalan.
- Keperluan perkakasan: Sekurang-kurangnya 4GB RAM, ruang storan 20GB (untuk pangkalan data dan kontena Docker).
Klona kod sumber:
cd ~
git clone https://github.com/myems/myems
Langkah 1 Pangkalan Data
Rujuk Pangkalan Data
Langkah 2 myems-api
Dalam bahagian ini, anda akan memasang myems-api pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-api c:\
cd c:\myems-api
- Buat fail .env berdasarkan fail example.env
Gantikan secara manual 127.0.0.1 dengan alamat IP HOST sebenar.
cp example.env .env
- Bina Imej dari Kod Sumber
docker build -t myems/myems-api .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-api .
- Jalankan kontena Docker
Pada hos, buat folder di c:\myems-upload, pasang semula folder ini ke kontena, dan juga pasang semula fail .env ke kontena:
docker run -d -p 8000:8000 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\myems-api\.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-api myems/myems-api
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-p Terbitkan port(s) kontena ke hos, 8000:8000 (Hos:Kontena) mempasang port 8000 (kanan) kontena ke port TCP 8000 (kiri) mesin hos.
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jalur mutlak sebelum titik dua adalah untuk laluan pada hos dan ia mungkin berbeza pada sistem anda. Jalur mutlak selepas titik dua adalah untuk laluan pada kontena dan ia TIDAK BOLEH diubah. Dengan menghantar .env sebagai parameter pemasangan semula terikat, anda boleh menukar nilai konfigurasi kemudiannya. Jika anda menukar fail .env, mulakan semula kontena untuk membuat perubahan berkesan.
Jika anda mahu memindahkan imej ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-api.tar myems/myems-api
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-api.tar
Langkah 3 myems-admin
Dalam bahagian ini, anda akan memasang myems-admin pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-admin c:\
cd c:\myems-admin
Gantikan secara manual 127.0.0.1:8000 dalam nginx.conf dengan alamat IP HOST sebenar dan port myems-api
notepad nginx.conf
proxy_pass http://127.0.0.1:8000/;
- Bina Imej dari Kod Sumber
docker build -t myems/myems-admin .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-admin .
- Jalankan kontena Docker
Pada hos, buat folder di c:\myems-upload, pasang semula folder ini ke kontena, dan juga pasang semula fail nginx.conf ke kontena: Parameter -v untuk folder upload mesti sama dengan yang digunakan dalam myems-api
docker run -d -p 8001:8001 -v c:\myems-upload:/var/www/myems-admin/upload -v c:\myems-admin/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-admin myems/myems-admin
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-p Terbitkan port(s) kontena ke hos, 8001:8001 (Hos:Kontena) mempasang port 8001 (kanan) kontena ke port TCP 8001 (kiri) mesin hos.
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jika anda mahu memindahkan imej ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-admin.tar myems/myems-admin
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-admin.tar
Langkah 4 myems-modbus-tcp
Dalam bahagian ini, anda akan memasang myems-modbus-tcp pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-modbus-tcp c:\
cd c:\myems-modbus-tcp
- Buat fail .env berdasarkan fail example.env
Gantikan secara manual 127.0.0.1 dengan alamat IP HOST sebenar.
cp example.env .env
- Bina Imej dari Kod Sumber
docker build -t myems/myems-modbus-tcp .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
- Jalankan kontena Docker (Jalankan sebagai Administrator)
docker run -d -v c:\myems-modbus-tcp\.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-modbus-tcp myems/myems-modbus-tcp
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jalur mutlak sebelum titik dua adalah untuk laluan pada hos dan ia mungkin berbeza pada sistem anda. Jalur mutlak selepas titik dua adalah untuk laluan pada kontena dan ia TIDAK BOLEH diubah. Dengan menghantar .env sebagai parameter pemasangan semula terikat, anda boleh menukar nilai konfigurasi kemudiannya. Jika anda menukar fail .env, mulakan semula kontena untuk membuat perubahan berkesan.
- Memindahkan kontena Docker
Untuk memindahkan kontena ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-modbus-tcp.tar
Langkah 5 myems-cleaning
Dalam bahagian ini, anda akan memasang myems-cleaning pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-cleaning c:\
cd c:\myems-cleaning
- Buat fail .env berdasarkan fail example.env
Gantikan secara manual 127.0.0.1 dengan alamat IP HOST sebenar.
cp example.env .env
- Bina Imej dari Kod Sumber
docker build -t myems/myems-cleaning .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-cleaning .
- Jalankan kontena Docker (Jalankan sebagai Administrator)
docker run -d -v c:\myems-cleaning\.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-cleaning myems/myems-cleaning
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jalur mutlak sebelum titik dua adalah untuk laluan pada hos dan ia mungkin berbeza pada sistem anda. Jalur mutlak selepas titik dua adalah untuk laluan pada kontena dan ia TIDAK BOLEH diubah. Dengan menghantar .env sebagai parameter pemasangan semula terikat, anda boleh menukar nilai konfigurasi kemudiannya. Jika anda menukar fail .env, mulakan semula kontena untuk membuat perubahan berkesan.
- Memindahkan kontena Docker
Untuk memindahkan kontena ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-cleaning.tar myems/myems-cleaning
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-cleaning.tar
Langkah 6 myems-normalization
Dalam bahagian ini, anda akan memasang myems-normalization pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-normalization c:\
cd c:\myems-normalization
- Buat fail .env berdasarkan fail example.env
Gantikan secara manual 127.0.0.1 dengan alamat IP HOST sebenar.
cp example.env .env
- Bina Imej dari Kod Sumber
docker build -t myems/myems-normalization .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-normalization .
- Jalankan kontena Docker (Jalankan sebagai Administrator)
docker run -d -v c:\myems-normalization\.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-normalization myems/myems-normalization
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jalur mutlak sebelum titik dua adalah untuk laluan pada hos dan ia mungkin berbeza pada sistem anda. Jalur mutlak selepas titik dua adalah untuk laluan pada kontena dan ia TIDAK BOLEH diubah. Dengan menghantar .env sebagai parameter pemasangan semula terikat, anda boleh menukar nilai konfigurasi kemudiannya. Jika anda menukar fail .env, mulakan semula kontena untuk membuat perubahan berkesan.
- Memindahkan kontena Docker
Untuk memindahkan kontena ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-normalization.tar myems/myems-normalization
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-normalization.tar
Langkah 7 myems-aggregation
Dalam bahagian ini, anda akan memasang myems-aggregation pada Docker.
- Salin kod sumber ke direktori root
cp -r myems/myems-aggregation c:\
cd c:\myems-aggregation
- Buat fail .env berdasarkan fail example.env
Gantikan secara manual 127.0.0.1 dengan alamat IP HOST sebenar.
cp example.env .env
- Bina Imej dari Kod Sumber
docker build -t myems/myems-aggregation .
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-aggregation .
- Jalankan kontena Docker (Jalankan sebagai Administrator)
docker run -d -v c:\myems-aggregation\.env:/app/.env:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-aggregation myems/myems-aggregation
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jalur mutlak sebelum titik dua adalah untuk laluan pada hos dan ia mungkin berbeza pada sistem anda. Jalur mutlak selepas titik dua adalah untuk laluan pada kontena dan ia TIDAK BOLEH diubah. Dengan menghantar .env sebagai parameter pemasangan semula terikat, anda boleh menukar nilai konfigurasi kemudiannya. Jika anda menukar fail .env, mulakan semula kontena untuk membuat perubahan berkesan.
-
Memindahkan kontena Docker
-
Export imej ke fail tarball
docker save --output myems-aggregation.tar myems/myems-aggregation
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-aggregation.tar
Langkah 8 myems-web
Dalam bahagian ini, anda akan memasang myems-web pada Docker.
- Ubah suai fail config.js:
Dapatkan mapboxToken di https://mapbox.com dan kemudian tetapkan showOnlineMap ke true. Jika anda mahu mematikan ciri peta dalam talian, tetapkan showOnlineMap ke false
cd myems/myems-web
notepad src/config.js
Gantikan 127.0.0.1:8000 dalam nginx.conf dengan alamat IP HOST sebenar dan port myems-api
cd myems/myems-web
notepad nginx.conf
- Salin kod sumber ke direktori root
cp -r myems/myems-web c:\
cd c:\myems-web
Anda boleh selamat mengabaikan arahan 'npm run build' dalam bahagian ini, kerana ia dibina ke dalam Dockerfile
- Bina Imej dari Kod Sumber
docker build -t myems/myems-web .
docker image prune -f
Untuk membina untuk pelbagai platform dan bukan sahaja untuk seni bina dan sistem operasi yang dijalankan oleh pengguna yang memanggil pembinaan, anda boleh menggunakan buildx dan menetapkan bendera --platform untuk menentukan platform sasaran untuk output pembinaan (contohnya, linux/amd64, linux/arm64, atau darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-web .
docker image prune -f
- Jalankan kontena Docker
Pada hos, pasang semula fail nginx.conf
docker run -d -p 80:80 -v c:\myems-web/nginx.conf:/etc/nginx/nginx.conf:ro --log-opt max-size=1m --log-opt max-file=2 --restart always --name myems-web myems/myems-web
-
-d Jalankan kontena di latar belakang dan cetak ID kontena
-
-p Terbitkan port(s) kontena ke hos, 80:80 (Hos:Kontena) mempasang port 80 (kanan) kontena ke port TCP 80 (kiri) mesin hos.
-
-v Jika anda menggunakan -v atau --volume untuk mempasang semula fail atau direktori yang belum wujud pada hos Docker, -v akan mencipta titik akhir untuk anda. Ia sentiasa dicipta sebagai direktori. Pilihan ro, jika wujud, menyebabkan pemasangan semula terikat dipasang ke dalam kontena sebagai hanya-baca. Untuk versi v4.7.0 atau lebih awal, gunakan '/code/.env' dan bukannya '/app/.env'.
-
--log-opt max-size=2m Saiz maksimum log sebelum ia digulung. Integer positif ditambah pengubah yang mewakili unit ukuran (k, m, atau g).
-
--log-opt max-file=2 Bilangan maksimum fail log yang boleh wujud. Jika menggulung log mencipta fail berlebihan, fail tertua akan dipadam. Integer positif.
-
--restart Dasar permulaan semula untuk digunakan apabila kontena keluar
-
--name Tetapkan nama kepada kontena
Jika anda mahu memindahkan imej ke komputer lain,
- Export imej ke fail tarball
docker save --output myems-web.tar myems/myems-web
- Salin fail tarball ke komputer lain, dan kemudian muat imej dari fail tarball
docker load --input .\myems-web.tar
Selepas Pemasangan
Tahniah! Anda kini boleh log masuk ke UI Admin MyEMS dan UI Web MyEMS.
Port Lalai
MyEMS Web UI: 80
MyEMS API: 8000
MyEMS Admin UI: 8001
Dengan menganggap alamat pelayan adalah 192.168.1.8 (gantikan dengan alamat pelayan sebenar) Akses MyEMS Web UI di http://192.168.1.8 (80 boleh dihilangkan) Akses MyEMS Admin UI di http://192.168.1.8:8001
Kata Laluan Lalai
MyEMS Admin UI
Nama Pengguna:
administrator
Kata Laluan:
!MyEMS1
MyEMS Web UI
Nama Pengguna:
administrator@myems.io
Kata Laluan:
!MyEMS1
Penyelesaian Masalah
Disebabkan isu rangkaian ISP, anda mungkin mengalami kelambatan dalam penarikan imej. Anda boleh menggunakan perkhidmatan pecutan pihak ketiga.