2015-04-15 4 views
9

Jestem nowy w doku, więc moje pytanie może być bardzo naiwne/głupie. Aplikacja, którą obecnie używamy, musi być skompilowana na innej platformie, aby działała na pożądanej platformie, głównie w Linuksie i Window. Musimy więc skompilować kod źródłowy (C/C++) na innej platformie i udostępnić klientowi różne pliki wykonywalne zgodnie z ich systemem operacyjnym. Moje pytanie brzmi: 1. Czy w dockerze jest możliwe, że mam jeden plik wykonywalny działający na wszystkich platformach? tj skompilować mój kod źródłowy w jednej platformy na przykład w systemie Linux i statek wykonywalny z docker uruchomić w platformie OknoCzy Docker może pomóc w tworzeniu pliku wykonywalnego, który działa na innej platformie?

góry dzięki

Odpowiedz

2

Trzeba jeszcze skompilować kod źródłowy na różnych platformach. Celem dokowania jest zautomatyzowanie budowania i testowania kodu na każdej platformie, dzięki czemu można po prostu pracować nad kodem i pozwolić mu tworzyć i testować na każdej platformie.

Musisz skonfigurować dokery i skrypty testowe, a przede wszystkim uzyskać kod działający na różnych platformach. Ale po wykonaniu tej czynności zasadniczo nie musisz martwić się o żadną inną platformę, chyba że ją złamiesz.

+0

Dzięki za odpowiedź. Mam tę kwerendę, która Jeśli uruchomię moją aplikację do testowania z dokowania, czy to wykonanie staje się zbyt wolne w porównaniu, jeśli uruchamiane bezpośrednio na pożądanej platformie – pgh

2

Docker pozwala na uruchamianie tego samego kontenera w dowolnej nowoczesnej dystrybucji Linuksa - potrzebny jest tutaj tylko program dokujacy. Nie możesz uruchamiać tych kontenerów bezpośrednio w systemie Windows - musisz uruchomić maszynę wirtualną z Linuksem, która uruchomi kontener dokera. Właśnie to robi boot2docker - uruchamianie kontenerów doków w Windows i Mac Os X na maszynie wirtualnej. W niektórych przypadkach jest to dopuszczalne.

+0

Dzięki za odpowiedź. Kiedy mówimy o pojemniku, jest taki sam jak plik wykonywalny, np. Skompilowany z żądanym kodem źródłowym. ? . Jeśli tak, to znaczy, że mogę uruchomić ten exe na dowolnej nowoczesnej dystrybucji Linuksa, jeśli mają tam zainstalowany docker. – pgh

+0

Kontener to zestaw plików - zwykle oparty na dystrybucji Linuksa (na przykład Ubuntu) - jak mała i lekka maszyna wirtualna - więc zwykle jest to setki plików binarnych (pliki binarne Linux, nie windows .exe) typowych dla środowiska posix (ale niektóre osoby przy użyciu bardzo małych obrazów podstawowych). Istnieją również pliki binarne, które domyślnie są wykonywane w kontenerze. Dlatego na przykład możesz uruchomić aplikację Ubuntu w kontenerze na RedHat Linux - ponieważ wszystkie zależności od Ubuntu już istnieją. – ISanych

+0

Dzięki temu wyjaśniono wątpliwości. Jeszcze jedno ostatnie pytanie. Jeśli uruchomię moją aplikację do testowania za pomocą okna dokowanego, to czy wykonanie jest zbyt wolne w porównaniu z uruchamianiem bezpośrednio na wybranej platformie. Każdy pomysł lub komentarz na ten temat. – pgh

1

Nie, nie może, dokowanie to tylko system Linux. Aby uruchomić okno dokowane w systemie Windows, musisz need a virtual machine.

Jeśli nie poświęcisz czasu na owinięcie skryptu instalatora w celu zainstalowania maszyny wirtualnej i wszystkich, możesz równie dobrze uruchomić odpowiednią maszynę wirtualną w wirtualnym pudełku lub VMWare do wyboru. Nawet wtedy twoja aplikacja na Windowsie będzie drugorzędna, ponieważ nie działa natywnie.

Powiązane problemy