Sari la conținut

Container Environment

Configurați imaginea containerului oficial al platformei folosind variabilele de mediu PROBOD_*, secretele necesare, referințele secrete AWS și comportamentul de pornire.

View as Markdown

The official container image uses probod-bootstrap to convert PROBOD_* variabile de mediu într-un fișier de configurare YAML înainte de a începe probod.

CONFIG_FILE selectează fișierul de configurare generat sau montat și defectează /etc/probod/config.yml.

La fiecare container începe:

  1. When PROBOD_ENCRYPTION_KEY este setat, punctul de intrare generează CONFIG_FILE de mediu. conţinutul fişierului existent este înlocuit.
  2. În caz contrar, punctul de intrare utilizează CONFIG_FILE.
  3. Startup-ul eșuează atunci când nici una dintre surse nu este disponibilă.

This makes PROBOD_ENCRYPTION_KEY Schimbarea între configurația generată de mediu și cea gestionată direct.

probod-bootstrap requires four persistent secrets:

VariablePurpose
PROBOD_ENCRYPTION_KEYEncrypts sensitive application data at rest
PROBOD_AUTH_COOKIE_SECRETSigns session cookies
PROBOD_AUTH_PASSWORD_PEPPERAdds a deployment secret to password hashing
PROBOD_OAUTH2_SERVER_SIGNING_KEYCheia privată PEM RSA utilizată pentru a semna jetoane OAuth 2.0

Generarea de valori aleatorii separate pentru primele trei setări și o cheie RSA pentru cheia de semnare:

openssl rand -base64 32
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048

Setați aceste valori înainte de începerea primei producții, păstrați-le stabile pe parcursul restarturilor și a instanțelor de aplicare și includeți-le în procedurile de recuperare.

Setarea valorilor infrastructurii și aplicațiilor alături de secretele necesare Acest exemplu minim arată intrările principale; nu este o listă completă de variabile.

PROBOD_BASE_URL=https://probo.example.com
PROBOD_API_ADDR=0.0.0.0:8080
PROBOD_API_CORS_ALLOWED_ORIGINS=https://probo.example.com

PROBOD_PG_ADDR=postgres.example.com:5432
PROBOD_PG_USERNAME=probod
PROBOD_PG_PASSWORD=replace-me
PROBOD_PG_DATABASE=probod

PROBOD_AWS_REGION=eu-west-1
PROBOD_AWS_BUCKET=probo-production

Procesul bootstrap aplică setările implicite documentate, convertește șirurile la tipurile necesare și eșuează înainte de a scrie fișierul atunci când o valoare necesară lipsește sau o valoare nu poate fi analizată.

  • PROBOD_PG_CA_BUNDLE_PATH citește un pachet PostgreSQL CA dintr-un fișier și are prioritate față de inline PROBOD_PG_CA_BUNDLE.
  • When both PROBOD_SAML_CERTIFICATE and PROBOD_SAML_PRIVATE_KEY sunt absente, bootstrap generează o pereche. Configurează o pereche stabilă atunci când sesiunile SAML trebuie să supraviețuiască înlocuirii containerului.
  • Setarea unui ID client de conector activează acel conector și face necesar secretul clientului. Slack necesită, de asemenea, secretul de semnătură; Vercel necesită, de asemenea, slugul de integrare.
  • Intrările separate de comă sunt tăiate și convertite în liste.
  • Boolean values use true or falseDuratele numerice sunt exprimate în unitatea indicată în complete reference.
  • PEM values must preserve their line breaks.

Toate valorile citite de probod-bootstrap poate fi o referință secretă literală sau AWS:

SyntaxService
awssm://<secret-id>AWS Secrets Manager
aws://<secret-id>AWS Secrets Manager alias
awsps://<parameter-name>AWS Systems Manager Parameter Store
PROBOD_ENCRYPTION_KEY=awssm://probo/production/encryption-key
PROBOD_AUTH_COOKIE_SECRET=awsps:///probo/production/cookie-secret

Rezoluția secretă utilizează lanțul de credențiale și regiune standard AWSSDK. PROBOD_AWS_* Configurează platforma de stocare a obiectelor; nu autentifică rezoluția secretă.

Fișierul generat este un artefact de pornire și probod După modificarea unei variabile de mediu sau a unui secret de referință, reporniți fiecare instanță de aplicație și confirmați că fiecare instanță pornește cu succes.

Ultima actualizare: