Windows Üzerinde Docker
Bu kılavuzda, MyEMS'i Windows üzerinde Docker ile dağıtacaksınız.
Önkoşullar
- Ana makinede docker ve npm kurulu olmalıdır.
- MySQL sunucusu kurulu olmalıdır.
- MySQL veritabanına, Docker Engine'in çalıştığı ana makineden erişilebilmelidir.
- Donanım gereksinimleri: En az 4GB RAM, 20GB depolama alanı (veritabanı ve Docker konteyneri için).
Kaynak kodu klonlayın:
cd ~
git clone https://github.com/myems/myems
1. Adım Veritabanı
Veritabanı bölümüne bakın
2. Adım myems-api
Bu bölümde, myems-api'yi Docker üzerinde kuracaksınız.
- Kaynak kodu kök dizine kopyalayın
cp -r myems/myems-api c:\
cd c:\myems-api
- example.env dosyasına göre .env dosyasını oluşturun
127.0.0.1 adresini gerçek HOST IP adresiyle manuel olarak değiştirin.
cp example.env .env
- Kaynaktan imaj oluşturun
docker build -t myems/myems-api .
Birden fazla platform için derleme yapmak ve yalnızca derlemeyi başlatan kullanıcının mimarisi ve işletim sistemiyle sınırlı kalmamak için buildx kullanabilir ve --platform bayrağı ile hedef platformu belirtebilirsiniz (örneğin, linux/amd64, linux/arm64 veya darwin/amd64).
docker buildx build --platform=linux/amd64 -t myems/myems-api .
- Bir Docker konteyneri çalıştırın
Ana makinede c:\myems-upload klasörü oluşturun, bunu ve .env dosyasını konteynere bind-mount edin:
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 Konteyneri arka planda çalıştırır ve konteyner ID'sini yazdırır
-
-p Konteynerin port(lar)ını ana makineye yayınlar, 8000:8000 (Ana Makine:Konteyner) konteynerin 8000 portunu ana makinenin 8000 portuna bağlar.
-
-v Eğer ana makinede henüz mevcut olmayan bir dosya veya dizini bind-mount ederseniz, -v sizin için bu uç noktayı oluşturur. Her zaman bir dizin olarak oluşturulur. ro seçeneği varsa, mount edilen dosya/dizin konteynerde salt okunur olur. v4.7.0 veya önceki sürümler için '/app/.env' yerine '/code/.env' kullanın.
-
--log-opt max-size=2m Log dosyasının döndürülmeden önceki maksimum boyutu. Birim olarak k, m veya g kullanılabilir.
-
--log-opt max-file=2 Maksimum log dosyası sayısı. Fazla dosya oluşursa en eski dosya silinir.
-
--restart Konteyner çıktığında uygulanacak yeniden başlatma politikası
-
--name Konteynere bir isim atar
İki nokta üst üste öncesindeki mutlak yol ana makinedeki yoldur ve sisteminizde değişebilir. Sonrasındaki yol konteynerdeki yoldur ve değiştirilemez. .env dosyasını bind-mount parametresi olarak geçirerek yapılandırma değerlerini daha sonra değiştirebilirsiniz. .env dosyasını değiştirirseniz, değişikliğin etkili olması için konteyneri yeniden başlatın.
Görüntüyü başka bir bilgisayara taşımak isterseniz,
- İmajı tar dosyasına aktarın
docker save --output myems-api.tar myems/myems-api
- Tar dosyasını başka bir bilgisayara kopyalayın ve ardından imajı tar dosyasından yükleyin
docker load --input .\myems-api.tar