Ich versuche ein Projekt auf CircleCI zu erstellen, das Zugriff auf eine sichere Datei benötigt. Ich kann keine Umgebungsvariable verwenden, sie muss in Form einer Datei vorliegen. In meinem Fall ist es speziell eine Maven settings.xml
Datei, aber es gibt andere Anwendungsfälle. Was kann ich tun?Wie kann ich eine sichere Datei in einem CircleCI-Build verwenden?
Antwort
Es gibt tatsächlich eine ganze Reihe von Lösungen für dieses Problem:
Datei als Umgebungsvariable
Wenn der Inhalt der Datei kurz ist (nur ein Passwort zum Beispiel), können Sie die gesamten speichern Datei als Umgebungsvariable, und dann eine Zeile wie diese auf Ihre circle.yaml Build-Datei hinzufügen:
echo $SECURE_FILE > mySecureFile
Variable Substitution
Wenn der Inhalt der Datei groß ist, aber nur ein kleiner Teil der Datei sicher ist, können Sie die Datei in Ihrem Code-Repository speichern und dann mithilfe von sed eine feste Zeichenfolge durch eine Umgebungsvariable ersetzen :
sed -e s/SECURE_PASSWORD/${SECURE_PASSWORD}/g mySecureFile.tmpl > mySecureFile
verschlüsseln der Datei
Sie können Ihre Konfigurationsdatei verschlüsseln und sie in die Quell-Repository überprüfen, dann speichern Sie den Entschlüsselungsschlüssel als Umgebungsvariable. Entschlüsseln Sie es während des Build-Prozesses.
Maven Settings.xml Sonderfall
Für den speziellen Fall von Maven settings.xml Dateien, Sie Umgebungsvariablen in Ihrer settings.xml verwenden können, so dass man etwas tun kann:
- Speichern Sie Ihre settings.xml in conf/settings.xml
- Ersetzen Sie das sichere Text mit etwas wie folgt aus:
${env.MY_SECURE_TEXT}
- Set
MY_SECURE_TEXT
in der c icle CI-Konfiguration - Fügen Sie in circle.yaml '-s conf/settings.xml' zu Ihren Maven-Buildbefehlen hinzu.
- 1. Wie sichere Datei herunterladen?
- 2. Wie sichere ich eine Datenbank in einer .bak-Datei?
- 3. Wie Zugriff Unterverzeichnis Datei in Wowza, die sichere Token verwenden
- 4. Wie sichere ich meine Datei "hibernate.cfg.xml"? (Nhibernate)
- 5. Wie kann ich eine kryptografisch sichere Pseudozufallszahl in C# generieren?
- 6. C: Sichere Thread-Protokollierung in eine Datei
- 7. Wie kann ich sichere Env-Variablen entschlüsseln?
- 8. web.config sichere eine Datei: können Sie AD-Verteilergruppen verwenden?
- 9. Wie kann ich eine Clientverbindung auf sichere Weise authentifizieren?
- 10. Wie kann ich eine Variable in einem Pfad verwenden? (angularjs)
- 11. Wie kann ich eine Winkelbereichsvariable in einem Repeater verwenden?
- 12. Wie kann ich eine Java-Datei in einem anderen aufrufen?
- 13. Wie kann ich eine .so-Datei in einem Jar bündeln?
- 14. Wie kann ich eine sichere Verbindung zu einem Websocket auf localhost herstellen?
- 15. Wie kann ich nur eine Boost-Bibliothek/-Datei verwenden?
- 16. Wie kann ich mit weka eine JSON-Datei verwenden
- 17. Wie kann ich eine DLL-Datei von Python verwenden?
- 18. Kann ich eine Knotenbibliothek in einem Dart-Server verwenden?
- 19. Wie kann ich eine Datei
- 20. Wie sichere ich einen Webservice in .net?
- 21. Wie kann ich eine Datei in JDK7 umbenennen (nicht verschieben)?
- 22. Kann ich eine Lenkervorlage in meiner app.js-Datei verwenden
- 23. Wie kann ich Inline-Variablen in einer .bat-Datei verwenden?
- 24. Wie kann ich eine Konfigurationsdatei in React verwenden?
- 25. Eine sichere, atomare Dateikopie-Operation
- 26. Wie kann ich eine Zusammenfassung (lm) in eine Datei speichern?
- 27. Wie kann ich eine HttpResponse in eine Datei herunterladen?
- 28. In eine Thread-sichere Weise in die Datei schreiben
- 29. Kann ich eine RC-Ressourcendatei in einem C# -Projekt verwenden?
- 30. Wie kann ich eine Datei aus meinem Projekt in einer anderen Datei verwenden?