podman-linux
sidebar_position: 14
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.
-
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.servicekomutunu kullanın.Unit not foundgö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
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
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
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
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
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
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:
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
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
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