Ana İçeriğe Git

podman-linux


Linux üzerinde Podman

Bu kılavuzda, MyEMS'yi Linux üzerinde Podman ile dağıtacaksınız.

Önkoşullar

  • Ana makinede podman, npm kurulu.
  • MySQL sunucusu kurulu.
  • MySQL veritabanına, Podman Engine'in çalıştığı ana makineden bağlanılabilir.
uyarı
  • Podman komutlarını yürütmek için kök ayrıcalıklarının kullanılması önerilir.

  • Podman'ı kurduktan sonra, konteynerlerin otomatik başlatma ve politikası için yapılandırılıp yapılandırılmadığını kontrol etmek için systemctl status podman-restart.service komutunu kullanın. Unit not found görüntülenirse, konteynerin otomatik başlatılamayacağı anlamına gelir.

Adım 1 Veritabanı

Bkz. Veritabanı

Adım 2 myems-api

Bu bölümde, myems-api'yi Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-api /
cd /myems-api
  • example.env dosyasını temel alarak .env dosyasını oluşturun
uyarı

127.0.0.1 değerini gerçek ANA MAKİNE IP adresiyle manuel olarak değiştirin.

cp example.env .env
  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-api .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-api .
  • Bir Podman konteyneri çalıştırın

Ana makinede, paylaşılan yükleme dosya klasörünü oluşturun:

mkdir /myems-upload

Bir konteyner oluşturun, paylaşılan klasörü konteynere bağlayın ve ayrıca .env dosyasını konteynere bağlayın:

podman run -d -p 8000:8000 -v /myems-upload:/var/www/myems-admin/upload -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -p Konteynerin bağlantı noktasını/noktalarını ana makineye yayınlar, 8000:8000 (Ana Makine:Konteyner) konteynerin 8000 (sağ) bağlantı noktasını ana makinenin TCP bağlantı noktası 8000'e (sol) bağlar.

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

İki noktadan önceki mutlak yol, ana makinedeki yol içindir ve sisteminize göre değişebilir. İki noktadan sonraki mutlak yol, konteynerdeki yol içindir ve DEĞİŞTİRİLEMEZ. .env dosyasını bağlı bağlantı noktası parametresi olarak geçirerek, yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirdiyseniz, değişikliği etkinleştirmek için konteyneri yeniden başlatın.

Görüntüyü başka bir bilgisayara taşımak istiyorsanız,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-api.tar myems/myems-api
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-api.tar

Adım 3 myems-admin

Bu bölümde, myems-admin'i Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-admin /
cd /myems-admin
uyarı

nginx.conf dosyasındaki 127.0.0.1:8000 değerini myems-api'nin gerçek ANA MAKİNE ip ve bağlantı noktası ile manuel olarak değiştirin

nano nginx.conf
      proxy_pass http://127.0.0.1:8000/;
  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-admin .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-admin .
  • Bir Podman konteyneri çalıştırın

Ana makinede, paylaşılan yükleme dosya klasörünü oluşturun:

mkdir /myems-upload

Bir konteyner oluşturun, paylaşılan yükleme dosya klasörünü konteynere bağlayın ve ayrıca nginx.conf dosyasını bağlayın

podman run -d -p 8001:8001 -v /myems-upload:/var/www/myems-admin/upload -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -p Konteynerin bağlantı noktasını/noktalarını ana makineye yayınlar, 8001:8001 (Ana Makine:Konteyner) konteynerin 8001 (sağ) bağlantı noktasını ana makinenin TCP bağlantı noktası 8001'e (sol) bağlar.

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

Görüntüyü başka bir bilgisayara taşımak istiyorsanız,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-admin.tar myems/myems-admin
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-admin.tar

Adım 4 myems-modbus-tcp

Bu bölümde, myems-modbus-tcp'yi Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-modbus-tcp /
cd /myems-modbus-tcp
  • example.env dosyasını temel alarak .env dosyasını oluşturun
uyarı

127.0.0.1 değerini gerçek ANA MAKİNE IP adresiyle manuel olarak değiştirin.

cp example.env .env
  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-modbus-tcp .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-modbus-tcp .
  • Bir Podman konteyneri çalıştırın (süper kullanıcı olarak çalıştırın)
podman run -d -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

İki noktadan önceki mutlak yol, ana makinedeki yol içindir ve sisteminize göre değişebilir. İki noktadan sonraki mutlak yol, konteynerdeki yol içindir ve DEĞİŞTİRİLEMEZ. .env dosyasını bağlı bağlantı noktası parametresi olarak geçirerek, yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirdiyseniz, değişikliği etkinleştirmek için konteyneri yeniden başlatın.

  • Podman konteynerini taşıyın

Konteyneri başka bir bilgisayara taşımak için,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-modbus-tcp.tar myems/myems-modbus-tcp
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-modbus-tcp.tar

Adım 5 myems-cleaning

Bu bölümde, myems-cleaning'i Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-cleaning /
cd /myems-cleaning
  • example.env dosyasını temel alarak .env dosyasını oluşturun
uyarı

127.0.0.1 değerini gerçek ANA MAKİNE IP adresiyle manuel olarak değiştirin.

cp example.env .env
  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-cleaning .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-cleaning .
  • Bir Podman konteyneri çalıştırın (süper kullanıcı olarak çalıştırın)
podman run -d -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

İki noktadan önceki mutlak yol, ana makinedeki yol içindir ve sisteminize göre değişebilir. İki noktadan sonraki mutlak yol, konteynerdeki yol içindir ve DEĞİŞTİRİLEMEZ. .env dosyasını bağlı bağlantı noktası parametresi olarak geçirerek, yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirdiyseniz, değişikliği etkinleştirmek için konteyneri yeniden başlatın.

  • Podman konteynerini taşıyın

Konteyneri başka bir bilgisayara taşımak için,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-cleaning.tar myems/myems-cleaning
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-cleaning.tar

Adım 6 myems-normalization

Bu bölümde, myems-normalization'ı Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-normalization /
cd /myems-normalization
  • example.env dosyasını temel alarak .env dosyasını oluşturun
uyarı

127.0.0.1 değerini gerçek ANA MAKİNE IP adresiyle manuel olarak değiştirin.

cp example.env .env
  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-normalization .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-normalization .
  • Bir Podman konteyneri çalıştırın (süper kullanıcı olarak çalıştırın)
podman run -d -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

İki noktadan önceki mutlak yol, ana makinedeki yol içindir ve sisteminize göre değişebilir. İki noktadan sonraki mutlak yol, konteynerdeki yol içindir ve DEĞİŞTİRİLEMEZ. .env dosyasını bağlı bağlantı noktası parametresi olarak geçirerek, yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirdiyseniz, değişikliği etkinleştirmek için konteyneri yeniden başlatın.

  • Podman konteynerini taşıyın

Konteyneri başka bir bilgisayara taşımak için,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-normalization.tar myems/myems-normalization
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-normalization.tar

Adım 7 myems-aggregation

Bu bölümde, myems-aggregation'ı Podman üzerine kuracaksınız.

  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-aggregation /
cd /myems-aggregation
  • example.env dosyasını temel alarak .env dosyasını oluşturun
cp example.env .env
uyarı

127.0.0.1 değerini gerçek ANA MAKİNE IP adresiyle manuel olarak değiştirin.

  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-aggregation .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-aggregation .
  • Bir Podman konteyneri çalıştırın (süper kullanıcı olarak çalıştırın)
podman run -d -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

İki noktadan önceki mutlak yol, ana makinedeki yol içindir ve sisteminize göre değişebilir. İki noktadan sonraki mutlak yol, konteynerdeki yol içindir ve DEĞİŞTİRİLEMEZ. .env dosyasını bağlı bağlantı noktası parametresi olarak geçirerek, yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirdiyseniz, değişikliği etkinleştirmek için konteyneri yeniden başlatın.

  • Podman konteynerini taşıyın

  • Görüntüyü tarball dosyasına aktarın

podman save --output myems-aggregation.tar myems/myems-aggregation
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-aggregation.tar

Adım 8 myems-web

Bu bölümde, myems-web'i Podman üzerine kuracaksınız.

  • config.js dosyasını değiştirin:
Not

Mapbox token'ını https://mapbox.com adresinden alın ve ardından showOnlineMap'i true olarak ayarlayın. Çevrimiçi harita özelliğini kapatmak istiyorsanız, showOnlineMap'i false olarak ayarlayın

cd myems/myems-web
nano src/config.js
uyarı

nginx.conf dosyasındaki 127.0.0.1:8000 değerini myems-api'nin gerçek ANA MAKİNE ip ve bağlantı noktası ile değiştirin

cd myems/myems-web
nano nginx.conf
  • Kaynak kodunu kök dizinine kopyalayın
cp -r myems/myems-web /
cd /myems-web
Bilgi

Bu bölümdeki 'npm run build' komutunu güvenle yok sayabilirsiniz, çünkü Podmanfile'a dahil edilmiştir

  • Kaynak Koddan Görüntü Oluşturun
podman build -t myems/myems-web .

Birden fazla platform için ve yalnızca derlemeyi çağıran kullanıcının çalıştığı mimari ve işletim sistemi için değil. buildx'i kullanabilir ve derleme çıktısı için hedef platformu belirtmek üzere --platform bayrağını ayarlayabilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).

podman buildx build --platform=linux/amd64 -t myems/myems-web .
  • Bir Podman konteyneri çalıştırın

Ana makinede, nginx.conf dosyasını bağlayın

podman run -d -p 80:80 -v /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 Konteyneri arka planda çalıştırın ve konteyner kimliğini yazdırın

  • -p Konteynerin bağlantı noktasını/noktalarını ana makineye yayınlar, 80:80 (Ana Makine:Konteyner) konteynerin 80 (sağ) bağlantı noktasını ana makinenin TCP bağlantı noktası 80'e (sol) bağlar.

  • -v Eğer Podman ana makinesinde henüz mevcut olmayan bir dosya veya dizini bağlamak için -v veya --volume kullanırsanız, -v sizin için uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği, mevcutsa, bağlı bağlantı noktasının salt okunur olarak konteynere bağlanmasına neden olur. v4.7.0 veya önceki sürümler için, '/app/.env' yerine '/code/.env' kullanın.

  • --log-opt max-size=2m Günlük dosyasının döndürülmeden önceki maksimum boyutu. Ölçü birimini temsil eden pozitif bir tamsayı artı bir değiştirici (k, m veya g).

  • --log-opt max-file=2 Mevcut olabilecek maksimum günlük dosyası sayısı. Günlükleri döndürmek fazla dosya oluşturursa, en eski dosya kaldırılır. Pozitif bir tamsayı.

  • --restart Bir konteyner çıktığında uygulanacak yeniden başlatma politikası

  • --name Konteynere bir ad atayın

Görüntüyü başka bir bilgisayara taşımak istiyorsanız,

  • Görüntüyü tarball dosyasına aktarın
podman save --output myems-web.tar myems/myems-web
  • Tarball dosyasını başka bir bilgisayara kopyalayın ve ardından görüntüyü tarball dosyasından yükleyin
podman load --input .\myems-web.tar

Kurulum Sonrası

Tebrikler! Artık MyEMS Admin UI ve Web UI'da oturum açabilirsiniz.

Varsayılan Portlar

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Sunucu adresinin 192.168.1.8 olduğunu varsayalım (gerçek sunucu adresi ile değiştirin) MyEMS Web UI'a şu adresten erişin: http://192.168.1.8 (80 atlanabilir) MyEMS Admin UI'a şu adresten erişin: http://192.168.1.8:8001

Varsayılan Parolalar

MyEMS Admin UI

Kullanıcı Adı:

administrator

Parola:

!MyEMS1

MyEMS Web UI

Kullanıcı Adı:

administrator@myems.io

Parola:

!MyEMS1

Sorun Giderme