PREFIX='docker run --rm -it -v "$PWD":/app -w /app -u $(id -u):$(id -g)'
alias node='eval $PREFIX node:19.3.0-alpine3.17 node'
alias php='eval $PREFIX --init php:8.2.0-cli-alpine3.17 php' # --init for correct handle ctrl+C
alias python='eval $PREFIX python:3.11.1-alpine3.17 python'
alias go='eval $PREFIX golang:1.19.4-alpine3.17 go'
alias npm='eval $PREFIX node:19.3.0-alpine3.17 npm'
alias npx='eval $PREFIX node:19.3.0-alpine3.17 npx'
alias composer='eval $PREFIX composer:2.5.1 composer'
alias pip='eval $PREFIX python:3.11.1-alpine3.17 pip'
Docker образы на типовый случаи, а также для демок.
Все типовые сборки осуществляются через make
Примеры:
# сбилдить все образы в images
make build
# скомпилировать проект на go
make go v=$(pwd)/path_to_go_project
# раздать статику на 8080 порту
make nginx v=$(pwd)/path_to_files
# запустить сервис мониторинга на 3000 порту
make grafana
В качестве параметра 'v' передаётся абсолютный путь до директории.
Рекомендуется заходить в workspace под соответствующим юзером:
docker exec -it -u workspace CONTAINER_ID zsh
Может оказаться полезным делать экспорт/импорт созданных образов в tar архивы. Для этого можно использовать команды:
make export name=backup_images
make import name=backup_images
Для загрузки изменённых образов на gitHub нужно выполнить:
make push
можно конечно сделать webhook для загрузки образов по коммиту, но ручной запуск этого процесса более нагляден.
- makefile должен содержать tab вместо space, так работает make
- утилиту dos2unix можно использовать, чтобы убрать \r символы
- Стоит делать ревизию раз в год для обновления версий базовых образов.