Kann ich apt-get
oder andere Paketmanager in Cloud Foundry-Buildpacks oder .profile
Skripts verwenden, die mit Apps geliefert werden; und wenn ich kann, wie geht das? Ich erwarte es genauso wie in einer Dockerdatei, aber es funktioniert nicht mit oder ohne sudo
in meinem Fall.Paketverwalter in einer Cloud Foundry-Instanz verwenden
Antwort
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!
- 1. Verwenden mehrerer SSL-Zertifikate in einer Google Cloud-Instanz
- 2. Verwenden einer Pipe in der Cloud init runcmd schlägt fehl
- 3. Verwenden der Spring Cloud-Aufgabe zum Ausführen von Aufgaben in einer Task-fähigen Cloud Foundry
- 4. Anrufen einer Cloud-Funktion von einer anderen Cloud-Funktion
- 5. Welche Cloud für RabbitMQ verwenden?
- 6. Verwenden von FFMPEG in Google Cloud Platform
- 7. Verwenden einer vorgefertigten komplexen Cloud-Anwendung für das Benchmarking
- 8. Verwenden von Boto3 zum Aktualisieren einer Cloud-Vorlage
- 9. Kann ich GAE Cloud Endpoints von einer Desktopanwendung aus verwenden?
- 10. Speichern einer UUID in Cloud Spanner
- 11. Sicherung einer Solr Cloud?
- 12. Mehrere Azure Cloud Services in einer Lösung
- 13. Verwenden Sie Google Cloud mit Nativescript
- 14. spring-cloud-sleuth in einer reaktiven Umgebung
- 15. Verwenden von vorhandenen Cloud SQL-Tabellen lädt langsam; Erstellen einer Tabelle über AppMaker in Cloud SQL wird schnell geladen
- 16. Kann ich System.Runtime.Caching.MemoryCache im Cloud-Webrollenprojekt verwenden?
- 17. Wie Feuerbasis Cloud Messaging über Web verwenden
- 18. Verwenden der Google Cloud Vision-API
- 19. Tötung einer Cloud-Foundry-Instanz
- 20. Wie verwenden Sie die Google Cloud Platform?
- 21. Verwenden des Dienstkontos mit google cloud dataflow
- 22. Aktualisieren einer Eigenschaft einer Entität in Google Cloud-Datenspeicher python
- 23. Bereitstellen von Azure Cloud Service in einer gehosteten Cloud (nicht Azure)
- 24. Wie lese ich den Inhalt einer neuen Cloud-Speicherdatei vom Typ .json aus einer Cloud-Funktion?
- 25. Wie google cloud rede api in python zu verwenden
- 26. Verwenden von URL-sicheren Schlüsseln in Google Cloud Datastore
- 27. Verwenden von 2 asynchronen Task in Parsen Cloud query.each
- 28. Verwenden eines nicht standardmäßigen Dienstkontos in Google Cloud dataproc
- 29. Verwenden von zwei Datenbankreferenz in Cloud-Funktionen für Firebase
- 30. Kann Graphviz nicht in Google Cloud Datalab verwenden
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? –
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. –
@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. –