使用 vagrant + docker 搭建 symfony 開發環境
阿新 • • 發佈:2018-12-22
1.安裝 virtualbox 與 vagrant
官網直接下載安裝包,注意 virtualbox 要使用 5.1 版本,vagrant 使用最新版本。
2.下載 vagrant box
vagrant box add [name] [映象]
vagrant box add ubuntu ubuntu/xenial64
下載速度會很慢,建議複製連結到迅雷裡面下載。
3.使用 vagrant-winnfsd 外掛提升共享目錄效能
vagrant plugin install vagrant-winnfsd
4.初始化映象
選擇目錄,執行 vagrant init ubuntu
之後會生成一個 Vagrantfile 檔案。
開啟 Vagrantfile 檔案,修改程式碼:
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu" # config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "private_network", ip: "192.168.33.10" # 禁用原有的預設的共享目錄 config.vm.synced_folder '.', '/vagrant', disabled: true config.vm.synced_folder "./code", "/www", type: "nfs" end
修改完之後在當前目錄下建立 code 共享資料夾,此資料夾將對映到 ubuntu 的 /www 目錄。
5.開始執行
vagrant up
6.進入 ubuntu 系統
vagrant ssh
或者使用 xshell 登入,127.0.0.1:2222
。如果需要祕鑰登入則使用 .vagrant\machines\default\virtualbox
這個目錄下的 private_key
。之後想通過使用者名稱和密碼登入的話,修改 sshd_config
, sudo vi /etc/ssh/sshd_config
更改 PasswordAuthentication
為 yes
,之後就可以通過使用者名稱和密碼登入了,使用者名稱和密碼都是 vagrant
6. 安裝 docker ce
sudo apt-get update
新增軟體源的 GPG 金鑰
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add
向 source.list 中新增 Docker 軟體源
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
安裝 docker
sudo apt-get update
sudo apt-get install docker-ce
啟動 docker
sudo systemctl restart docker
將當前使用者加入 docker 使用者組
sudo usermod -aG docker $USE
之後退出當前終端,重新登入。
7.配置映象加速
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
之後重啟系統
sudo systemctl daemon-reload
sudo systemctl restart docker
8.檢測 docker 是否執行正確
docker run hello-world
9.安裝 docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
10.構建環境
docker-compose.yml 檔案
version: '3'
services:
### Applications Code Container #############################
# web:
# image: debian:jessie
# volumes:
# - ./www:/var/www
### PHP-FPM Container #######################################
php-fpm:
build:
context: ./php
container_name: php
volumes:
- ../www:/app
expose:
- "9000"
### Nginx Server Container ##################################
nginx:
build:
context: ./nginx
container_name: nginx
volumes:
- ../www:/app
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
配置好了之後執行 docker-compose up
自動構建並啟動
( mysql 使用的是本地PC機器上的 )
11.測試是否成功
由於使用的是 vagrant ,那麼訪問 http://192.168.33.10/
這個 ip 是之前 在Vagrantfile 中配置的私有 ip。