Anleitungen im Zusammenhang mit Local Beach

So arbeitest du mit Composer in Local Beach

Lösen von Problemen mit Composer auf dem Host-Rechner.

Wenn du Local Beach verwendest, ist die PHP-Umgebung im Container oft nicht dieselbe wie auf dem Host-Rechner. Das kann bei der Ausführung von Composer-Befehlen ein Problem darstellen. Eine Möglichkeit, dies zu umgehen, ist die Verwendung unserer Composer-Container.

Mit diesen Containern kannst du den Composer ganz einfach nutzen:

$ composer74 update --dry-run
Loading composer repositories with package information
Updating dependencies
Lock file operations: 124 installs, 0 updates, 0 removals
  - Locking amphp/amp (v2.6.0)
  - Locking amphp/byte-stream (v1.8.1)
  … many more lines, potentially
  - Locking webmozart/assert (1.9.1)
  - Locking webmozart/path-util (2.3.0)
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 3 updates, 0 removals
  - Upgrading neos/flow-development-collection (dev-master 32fd147 => dev-master adac338)
  - Upgrading seld/phar-utils (1.1.1 => 1.1.2)
  - Upgrading neos/neos-development-collection (dev-master a45d346 => dev-master b4cc4ab)
29 package suggestions were added by new dependencies, use `composer suggest` to see details.
91 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Das PHP im Container entspricht dem PHP, das in Beach und Local Beach verwendet wird, sodass die Kompatibilität gewährleistet ist. Und du brauchst die passende PHP-Version nicht auf deinem Host-Rechner, sondern kannst einfach die benötigte Container-Version verwenden.

Verwendung von docker run

Hinter den Kulissen ruft composer74 docker run auf und verwendet unseren Composer-Container, der auf PHP 7.4 basiert:

docker run \
        --interactive --rm --user $(id -u):$(id -g) \
        --volume /etc/passwd:/etc/passwd:ro \
        --volume /etc/group:/etc/group:ro \
        --volume $(pwd):/application:delegated \
        --volume $HOME/.composer/cache:/home/composer/cache:delegated \
        --volume $HOME/.composer/auth.json:/home/composer/auth.json \
        flownative/composer2:7.4 update --dry-run

Shell-Alias verwenden

Um Composer mit docker run zu starten, müssen eine Reihe von Optionen angegeben werden. Mit den folgenden Optionen kannst du dir das Leben leichter machen. Füge sie (je nach Bedarf) zu deinem Shell-Profil hinzu, z.B. in ~/.zshrc oder ~/.bashrc:

composer74 () {
    tty=
    tty -s && tty=--tty
    docker run \
        $tty \
        --interactive \
        --rm \
        --user $(id -u):$(id -g) \
        --volume /etc/passwd:/etc/passwd:ro \
        --volume /etc/group:/etc/group:ro \
        --volume $(pwd):/application:delegated \
        --volume $HOME/.composer/cache:/home/composer/cache:delegated \
        --volume $HOME/.composer/auth.json:/home/composer/auth.json \
        flownative/composer2:7.4 "$@"
}

composer80 () {
    tty=
    tty -s && tty=--tty
    docker run \
        $tty \
        --interactive \
        --rm \
        --user $(id -u):$(id -g) \
        --volume /etc/passwd:/etc/passwd:ro \
        --volume /etc/group:/etc/group:ro \
        --volume $(pwd):/application:delegated \
        --volume $HOME/.composer/cache:/home/composer/cache:delegated \
        --volume $HOME/.composer/auth.json:/home/composer/auth.json \
        flownative/composer2:8.0 "$@"
}

composer81 () {
    tty=
    tty -s && tty=--tty
    docker run \
        $tty \
        --interactive \
        --rm \
        --user $(id -u):$(id -g) \
        --volume /etc/passwd:/etc/passwd:ro \
        --volume /etc/group:/etc/group:ro \
        --volume $(pwd):/application:delegated \
        --volume $HOME/.composer/cache:/home/composer/cache:delegated \
        --volume $HOME/.composer/auth.json:/home/composer/auth.json \
        flownative/composer2:8.1 "$@"
}