SymfonyCloud | Erster Test

Symfony Cloud ist Symfony’s neuste „Platform as a Service“ (PaaS) Dienstleistung. Wie so viele geht nun auch Symfony mit einem eigenen Hosting an den Start, welches einfach per CLI gesteuert werden kann. Schauen wir doch mal rein…

Installation

Erstmal installieren wir die

curl -sS https://get.symfony.com/cli/installer | bash
mv /home/micha/.symfony/bin/symfony /usr/local/bin/symfony

Mit dem mv Befehl habt Ihr den Befehl symfony direkt global verfügbar.

The Symfony CLI v4.4.3 was installed successfully!

Wenn Ihr nun symfony in die Konsole tackert kommt folgendes:

Symfony Konsolen Info

Login

Für das erste nutzen müsste Ihr aktuell glaube ich noch im Early Access Program sein – Ihr könnt es natürlich mit eurem Symfony Connect Account probieren, aber keine Garantie das es funktioniert.

symfony login

Nun müsst Ihr euren Namen wählen, einen SSH Key setzen oder bereits bekannten Key nutzen und dann gehts auch schon los.

Projekt erstellen

Für das erste Projekt nehmen wir einfach mal eine demo.

symfony new --demo /var/www/symfonycloud/demo1

Error: The requested PHP extension ext-pdo_sqlite * is missing from your system. Install or enable PHP’s pdo_sqlite extension.

Euch fehlt hier einfach nur die sqlite extension (sudo apt-get install php7.2-sqlite3) – danach sollte es funktionieren.

Danach gehen wir in das Projekt Docroot und konfigurieren alles:

cd /var/www/symfonycloud/demo1
symfony project:init

Das ganze erzeugt dann 4 Dateien:

  • /var/www/symfonycloud/demo1/.symfony.cloud.yaml
  • /var/www/symfonycloud/demo1/.symfony/services.yaml
  • /var/www/symfonycloud/demo1/.symfony/routes.yaml
  • /var/www/symfonycloud/demo1/php.ini

Ich habe hier zu Testzwecken erstmal nur die PHP Version von 7.1 auf 7.2 geändert und zwar in der .symfony.cloud.yaml Datei. Danach müsste Ihr alle Dateien adden und commiten

git add .symfony.cloud.yaml .symfony/services.yaml .symfony/routes.yaml php.ini
git commit -m "Add SymfonyCloud configuration"

Zahlungsdaten hinterlegen

Ich musste erst nochmal die E-Mail prüfen um sicher zu gehen, dass ich keine Spam/Scam Mail erhalten haben und mir nun jemand über die CLI meine KK Daten abzwackt. Aber ja, die müsst Ihr leider hinterlegen, auch für den ersten Monat Trial. Nervig, denn auch wenn man erstmal nur testen möchte, hat direkt Stripe deine Zahlungsdaten… Aber was man nicht alles opfert für einen Blogartikel 😉

Kreditkartendaten und Provisioning

Beliebter Fehler: Deployment failed: Command failed

Ihr habt vermutlich vergessen eure config Dateien zu adden und zu commiten.

Deployen

Jetzt nur noch alles konfigurierte deployen und euer Projekt sollte stehen:

symfony deploy

Error

Leider bricht bei mir aktuell die Installation ab:

error @symfony/webpack-encore@0.26.0: The engine "node" is incompatible with this module. Expected version ">=8.0.0". Got "6.16.0"
Error beim deployen

Feedback -> warte aktuell noch auf Feedback von Symfony. Keep you updated.

EDIT 17.04.2019:

Besten Dank an dden schnellen Support von Symfony, die Übergangslösung hier ist in der .symfony..cloud.yaml den hook anzupassen:

hooks:
    build: |
      set -x -e

      curl -s https://get.symfony.com/cloud/configurator | (>&2 bash)

      unset NPM_CONFIG_PREFIX
      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | dash
      export NVM_DIR="$HOME/.nvm"
      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
      nvm current
      # adapt the following line to install the version you want
      nvm install 9.5.0

      (>&2 symfony-build)

Sauber! Nun läuft das deployment durch und wir haben ein Frontend und Backend unter https://master-7rqtwti-x6honzsdsseos.eu.s5y.io/de (vermutlich beim lesen bereits wieder offline 😉 ) zur Verfügung.

Symfony Demo Projekt mit SymfonyCloud

Lokal entwickeln

Natürlich wollt Ihr auch vorab euren Code testen und lokal entwickeln. Das geht ebenfalls einfach mit dem symfony Befehl

symfony serve

Und schon läuft wie üblich alles unter http://127.0.0.1:8000

Fazit

Schickes Tool für kleinere Projekte oder Mockups die man Kunden schnell zur Verfügung stellen möchte. Ohne großes aufsetzen von Servern kommt man hier schnell online. Ob es das richtige für echtes Hosting ist wird die Zeit zeigen.

Edit 16.05.2019

Symfony hat inzwischen das Problem gefixt – hier der Changelog zu neusten Version:

Update notes:
  v4.5.4:
  - Fix panic in relationships decoding when database has no credentials
  - Fix panic in `self:cleanup` when no previous version is present
  - Fix reading SSH passphrase when redirecting stdin
  - Switch MySQL/MariaDB charset from utf8 to utf8mb4
  - Add support for running `symfony phpdbg`
  - Add support for Kafka services (for SymfonyCloud and Docker)
  - Make variable project level by default for `var:delete` (and switched from `project-level` to `env-level` flag)
  
  v4.5.3:
  - Fix a panic in reloading proxy configuration
  - Make really hard to create projects in non interactive environments
  - Fix a race condition when running PHP commands
  - Clean up `var/` sub-directories when empty
  - Fix potential panic in relationships decoding
  
  v4.5.2:
  - Fix the auto-updater
  
  v4.5.1:
  - Allow to store `composer` under the PHP directory (even if the directory is not in `$PATH`)
  
  v4.5.0:
  - Add support for phpenv / Travis
  
  v4.4.5:
  - Fix broken Symfony WDT
  - Make variable project level by default (and switched from `project-level` to `env-level` flag in `var:set`)
  
  v4.4.4:
  - Support MYSQL_ROOT_PASSWORD for Docker integration
  - Fix Elasticsearch support for Docker integration
  - Fix PKCS1 private key validation when adding certificate
  - Fix linked environment is not used if branch has a remote upstream
  - Fix panic when unable to parse a non-standard PHP version
  - Fix panic when running `env:create` with no existing Cloud envs
  - Fix `history last` does not watch activity
  - Add a note about how to control PHP versions in `local:php:list`

Eine Antwort auf „SymfonyCloud | Erster Test“

  1. Hello mate !
    Discoverd your post and helped me a lot fixing the same issues.
    Trying to make SymfonyCloud with something else than the demo and I have trouble making the database connection working.
    Did you happen to configure a correct db connection ?

    PS : I actually don’t speak germain, google translate helped me find out the solution for the „error @symfony/webpack-encore@0.26.0: The engine „node“ is incompatible with this module. Expected version „>=8.0.0“. Got „6.16.0“ issue

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.