Ready-to-use environment for development on PHP, Python, JS, Java, Scala. phpdev is historical name.
100K+
Build image:
sudo docker build --rm -t andyceo/phpdevenv:latest .
Push image:
sudo docker push andyceo/phpdevenv:latest
Start container with port prefix 2500:
PORT_PREFIX=2500 && sudo docker run \
--detach \
--name phpdevenv \
--restart always \
--hostname phpdevenv \
--net docknet \
-p `echo $PORT_PREFIX+80|bc`:80 \
-p `echo $PORT_PREFIX+22|bc`:22 \
andyceo/phpdevenv:latest
If you want to run mysql in container and link your phpdevenv with it:
sudo docker run -d --restart always --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123qwe" mysql:5.5.48
And add link to mysql container to command from 3: --link mysql.
Если вы хотите смонтировать свою папку /root, то вам надо либо использовать именованные тома Docker (чтобы именованный том при первом запуске получил то содержимое, которое заложено в образе), либо вначале инициализировать контейнер без инициализации тома (будет создан неименованный том /root). Для этого сначала просто запустите контейнер:
PORT_PREFIX=2500 && sudo docker run \
--detach \
--name developer-01 \
--hostname developer-01 \
--restart always \
--net docknet \
-p `echo $PORT_PREFIX+80|bc`:80 \
-p `echo $PORT_PREFIX+22|bc`:22 \
andyceo/phpdevenv:latest
Затем, скопируйте содержимое /root в папку на хост-машине:
sudo docker cp developer-01:/root /data/developers/developer-01
Внимание! папка /data/developers/developer-01 уже должна существовать, тогда docker скопирует папку root из контейнера в папку /data/developers/developer-01/root, как и должно быть.
Затем уничтожте существующий контейнер
sudo docker rm -f developer-01
И создайте новый, с примонтированными с хост-системы папками:
PORT_PREFIX=2500 && sudo docker run \
--detach \
--name developer-01 \
--hostname developer-01 \
--restart always \
--net docknet \
-p `echo $PORT_PREFIX+80|bc`:80 \
-p `echo $PORT_PREFIX+22|bc`:22 \
-v /data/developers/developer-01/root:/root:rw \
andyceo/phpdevenv:latest
docknet и они автоматически будут вам видимы по адресу вроде redis-master (благодаря встроеному в докер внутреннему service discovery)/root (домашняя директория пользователя root) может быть смонтирована на хост-систему, а это значит, что если ваш контейнер внезапно погибнет, ваши данные в этой папке сохранятся и перекочуют в новый контейнер. Это позволит обновлять разработческие контейнеры на новые версии/tmp может быть смонтирован во временную файловую систему tmpfs на хосте, а это значит, что теперь она имеет быстродействие памяти и при перезагрузке хоста ее содержимое будет потеряно (раньше так не было)kill 1 (если докер настроен перезапускать данный контейнер если он упадет)/root/rootdirectories для хранения папок с конфигами сервисов, например, папка /etc/nginx будет при запуске контейнера перемещена в /etc/nginx-old, а /etc/nginx будет символьной ссылкой на /root/rootdirectories/etc-nginx. Это произойдет при условии, что последняя папка существует и /etc/nginx еще не символьная ссылка/root/databases/some-database, создайте соответствующий папку с конфигурацией для этой базы данных в /root/rootdirectories, саму папку /root/databases/some-database и перезапустите контейнерContent type
Image
Digest
Size
2.9 GB
Last updated
over 5 years ago
docker pull andyceo/phpdevenv