logo

Πως στήνουμε γρήγορα ένα dev περιβάλλον (PHP, Javascript κοκ)

01/10/2021

Είχα γράψει και παλιότερα έναν οδηγό για το ίδιο θέμα. Αλλά εκείνος ο τρόπος ήταν αρκετά πιο πολύπλοκος και έπρεπε να μπεις κάθε φορά σε συγκεκριμένο container για να δουλεύεις.

Με τον παρακάτω τρόπο που πειραματίζομαι όμως, δεν χρειάζεται αυτό. Απλά γράφεις εντολές στο host, όπως θα έγραφες αν είχες στήσει το dev περιβάλλον σου με τον πατροπαράδοτο τρόπο. Για παράδειγμα θα είχες εγκαταστήσει την PHP και τον composer στο μηχάνημα σου (χωρίς docker) και θα έγραφες απευθείας μέσα στο project σου εντολές τύπου “composer install

Τώρα θα χρησιμοποιήσουμε πάλι docker, αλλά θα είναι πολύ πιο απλό. Ας το δούμε αναλυτικά. (όλα τα παρακάτω ισχύουν σίγουρα σε linux. Παρόμοια θα γ´ίνονται και σε άλλα λειτουργικά φαντάζομαι. Φυσικά πρέπει να έχει εγκατασταθεί το docker)

Πρώτα από όλα κατεβάζεις σε ένα οποιοδήποτε folder σου τα αρχεία αυτού του repo.

git@github.com:ikiranis/devit.git

Στην συνέχεια κάνεις build το image (βάζεις ότι όνομα θέλεις για το image)

docker build . -t devit:1.0

Γίνεται το build και είσαι έτοιμος να το χρησιμοποιήσεις. Δηλαδή πας στο project σου και τρέχεις όποια εντολή θέλεις (π.χ. composer install), βάζοντας μπροστά το παρακάτω

docker run --rm --init -t -v $(pwd):/www -w /www -p 8000:8000 devit:1.0

Δηλαδή η τελική εντολή θα είναι του τύπου

docker run --rm --init -t -v $(pwd):/www -w /www -p 8000:8000 devit:1.0 composer install

Για ευκολία μπορείς όλο το αρχικό μακρυνάρι, να το βάζεις σαν alias. Δηλαδή προσθέτεις στο αρχείο ~/.bashrc την παρακάτω γραμμή.

alias devit="docker run --rm --init -t -v $(pwd):/www -w /www -p 8000:8000 devit:1.0"

Έτσι τελικά χρειάζεται να γράφεις μόνο

devit composer install

Παρόμοια μπορείς να τρέξεις εντολές npm, php artisan κτλ. Στο συγκεκριμένο image που γίνεται build, εγκαθιστούνται η PHP 7.4, node.js, npm, vue, xdebug, composer, phpunit, διάφορα extensions και βιβλιοθήκες, αλλά και πιθανά χρήσιμα utilities (git, wget, nano κτλ). Μπορείς φυσικά να αλλάξεις εκδόσεις (π.χ. σε PHP 8.0) και να αφαιρέσεις/προσθ´έσεις ότι θέλεις. Όλα αυτά πειράζοντας ανάλογα το αρχείο dockerfile.

Write your comment

rocean (at) error.gr
rocean
error.gr
feed