gundars / docker-devbox
Docker Devbox PHP 7.1 fpm with Nginx 1.10.3 OR Apache 2.4 on Ubuntu, Redis, Mail server, Blackfire profiler
0.1.0
2017-10-17 15:08 UTC
This package is not auto-updated.
Last update: 2024-09-19 05:00:04 UTC
README
Devbox
Host: Windows/Linux/Mac
Guest: Vagrant (Ubuntu 16:04 x64)
Features: PHP 7.1 fpm with Nginx 1.10.3 :80 AND Apache 2.4 :8080 on Ubuntu, Redis, Mail server, Blackfire profiler
Docker Containers:
NAMES CONTAINER ID CREATED AT CREATED SIZE
devbox-redis 21cef0e80862 2017-10-12 16:47:49 +0200 CEST 31 hours ago 0B (virtual 107MB)
devbox-blackfire 6036ab2d0053 2017-10-12 16:47:49 +0200 CEST 31 hours ago 0B (virtual 21.6MB)
devbox-php-nginx c1ef009da069 2017-10-12 16:47:49 +0200 CEST 31 hours ago 83.8kB (virtual 710MB)
devbox-php-apache 6ab2d09af114 2017-10-12 16:47:49 +0200 CEST 31 hours ago 83.8kB (virtual 670MB)
devbox-mailserver ea620ae114ca 2017-10-12 14:08:13 +0200 CEST 34 hours ago 0B (virtual 19.3MB)
PHP + Nginx at http://devbox.local
PHP + Apache2 at http://devbox.local:8080
Mailhog at http://devbox.local:8025
Mailhog SMTP at http://devbox.local:1025
Redis at http://devbox.local:6379
初始设置
- 安装Virtualbox, Vagrant, Git Bash
- 将
192.168.66.66 devbox.local
添加到hosts文件 - Git克隆此仓库
- 将
example.env
复制到.env
- 执行
vagrant up --provision
- 检查
http://devbox.local
和http://devbox.local:8080
是否工作 - 在PHPStorm或其他IDE中创建项目,源代码位于Windows PC上的./www目录
- ./www, ./logs, ./作为/vagrant目录与Docker容器进行三向同步
日常使用
vagrant up
- 启动盒子,创建Docker容器- PHP API Nginx在http://devbox.local
- PHP API Apache2在http://devbox.local:8080
- Mailhog在http://devbox.local:8025
- Mailhog SMTP在http://devbox.local:1025
- Redis在http://devbox.local:6379
额外日常使用
vagrant reload
- 重新启动盒子,重新创建Docker容器vagrant suspend
- 将盒子复制到内存中并挂起vagrant halt
- 关闭盒子vagrant halt
+vagrant destroy devbox
+vagrant up
- 完全重置一切- 在虚拟机中执行
sudo docker-cleanup && cd /vagrant && sudo docker-compose up -d
,以完全重置Docker容器
注意
- www, logs, scripts 3-way sync: ./www目录使用rsync同步到vagrant盒子的/var/www,该目录再同步到web容器中的/var/www
- 使用./www目录或/vagrant目录将文件传递到容器
- 使用
docker-cleanup
命令在vagrant盒子中查找并销毁所有与Docker相关的文件 - 通过putty (ubuntu:ubuntu)或
vagrant ssh
命令行工具访问vagrant盒子的控制台 - 进入Vagrant的控制台后,访问单个容器的控制台
sudo docker ps
将输出包括web容器ID等详细信息sudo docker exec -i -t CONTAINER_ID_HERE /bin/bash
将SSH进入容器- 或者直接通过名称:
sudo docker exec -i -t `sudo docker ps -aqf "name=devbox-php-nginx"` /bin/bash
- 要执行非shell命令,请从上一条命令中删除
-i
选项
- mailserver接受任何值,例如:
<?php mail("recipient", "subject", "message", "From: Sender");
- 如果
vagrant up
失败并显示"Can't locate /vagrant dir in guest box.",请执行vagrant reload
- 如果
vagrant up
失败并显示"The machine is in the 'unknown' state.",请执行vagrant halt
- 如果
vagrant up
失败并显示"Temporary failure resolving 'archive.ubuntu.com'",请在Windows主机设置中禁用和启用网络适配器