2016-11-08 5 views

Antwort

3

Kann ich apt-get oder andere Paketmanager in Cloud Foundry-Buildpacks oder .profile-Skripten verwenden, die mit Apps geliefert werden? und wenn ich kann, wie geht das?

Nr Lauf apt-get oder ein Paket-Manager würde erfordern in der Regel Root-Zugriff und Sie nicht bekommen, Root-Zugriff, wenn das Build-Pack läuft oder wenn Ihre Anwendung ausgeführt wird (dies ist ein Unterschied w/Docker).

Sie können alles tun, was keinen Root-Zugriff erfordert. Wenn Sie also einen Paketmanager gefunden haben, der im Home-Verzeichnis des vcap-Benutzers installiert ist und keinen Root benötigt, können Sie diesen verwenden.

Es hängt davon ab, was Sie versuchen zu installieren, aber in einigen Fällen können Sie umgehen, indem Sie die .deb- oder .rpm-Datei herunterladen und die Binärdateien manuell extrahieren. Dies funktioniert normalerweise für Dinge wie Shared Libraries. Laden Sie einfach die vorkompilierte Binärdatei herunter, die Ihrem Stack entspricht (cflinuxfs2 == Ubuntu Trusty). Für andere Dinge können Sie Ihre eigenen Binärdateien aus der Quelle erstellen. Dies ist, was die Baupacks tun, siehe binary-builder.

Hoffe, dass hilft!

+0

Also, zum Beispiel, wenn ich eine Erweiterung zu php buildpack (wie PHP-apc oder pwgen) hinzufügen möchte, anstatt es von apt-get zu installieren, ist es in Ordnung, die .so-Datei auf seine korrekte zu kopieren Verzeichnis? –

+0

Um Daniels Antwort zu erweitern, wollen Sie wahrscheinlich nicht-deterministische Operationen in einem Buildpack ausführen. Wenn Sie zum Beispiel "apt-get" aufrufen, erhalten Sie möglicherweise eine andere Version einer Abhängigkeit, je nachdem, wie die App inszeniert ist. –

+0

@QuanTranGia - Schauen Sie sich den oben erwähnten Binär-Builder an. So bauen wir PHP und alle Erweiterungen. Wenn Sie eine Erweiterung benötigen, die nicht standardmäßig mitgeliefert wird, senden Sie ein Problem (oder besser noch eine PR) und es ist sehr wahrscheinlich, dass es hinzugefügt wird. –

Verwandte Themen