Pergi ke kandungan utama

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
Amaran

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
Amaran

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
Amaran

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
Amaran

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
Amaran

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
Amaran

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:
Nota

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
Amaran

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
Info

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

Bagaimana untuk menyelesaikan isu masa luput tarik imej

Disebabkan isu rangkaian ISP, anda mungkin mengalami kelambatan dalam penarikan imej. Anda boleh menggunakan perkhidmatan pecutan pihak ketiga.