-
Docker-for-desktop 대체하기 (Vagrant 를 활용한 docker)개발/etc 2022. 2. 10. 00:05
구성도
필수설치
- Oracle VitualBox 설치
- 하이퍼바이저 끄기
window > cmd (관리자 권한) bcdedit /set hypervisorlaunchtype off
- 하이퍼 바이저를 실행시키면 Intel VT-x 또는 AMD-V 를 사용할수 없다
- 바이오스진입 후 가상화 켜기
- 하이퍼바이저 끄기
- Vagrant 설치
- Vagrant 플러그인 설치
vagrant plugin install vagrant-docker-compose
- VagrantFile 만들기
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.network "forwarded_port", guest: 443, host: 443 config.vm.network "forwarded_port", guest: 2375, host: 2375 config.vm.synced_folder "../../work", "/home/work" config.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--memory", 16384] vb.customize ["modifyvm", :id, "--cpus", 4] end config.vm.provision :docker config.vm.provision :docker_compose, yml: "/home/work/docker/docker-compose.yml", run: "always" end
- Vagrant 실행
cd vagrant_file_path vagrant up
- Vagrant 실행후 우분투 및 Docker 가 정상적으로 실행되고난후 127.0.0.1 : 2222 포트로 ssh 접속이 가능하다. 하지만 내가 사용하고있는 SecureCRT 7.0 버전에서는 아래 설정을 꺼주어야 접속가능했다.
cmd > cd vagrant_file_path cmd > vagrant ssh ------------bash---------------- vi /etc/ssh/sshd_config PasswordAuthentication yes #no -> yes 수정 sudo systemctl restart ssh
- 계정 초기정보는 vagrant / vagrant 임.
여기까지 따라했다면 docker-compose.yml 로 구성된 서비스들은 정상적으로 동작할거다.
내개발 환경은 nginx 만 443 으로 host PC 와 port forward 설정 되어있고 나머지는 ServerName 별로 리버스 프락시 설정이 되어있다.
개발환경 설치 (PhpStorm)
- PhpStorm 2020.3 버전 다운로드
- https://www.jetbrains.com/phpstorm/download/other.html
- PHP Strom 2021.x 버전 이후부터는 아직 버그가 존재하여 하위버전을 다운로드 받아야한다.
includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]
- 도커 tcp 소켓 오픈 (Ubuntu)
sudo vi /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock sudo systemctl daemon-reload sudo systemctl restart docker.service
- php.ini
[XDebug] xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_host=10.0.2.2 xdebug.remote_port=9002 xdebug.idekey=PHPSTORM
- docker-compose.yml
version: "3" services: php: environment: .... XDEBUG_CONFIG: "remote_host=10.0.2.2" PHP_IDE_CONFIG: "serverName=your-domain.com"
- PhpStorm > Servers
- Host 서버와 Docker Php document root 와 매칭시켜준다.
- Host 서버와 Docker Php document root 와 매칭시켜준다.
- PhpStorm > Docker
- 위에서 도커 소켓을 2375 번으로 열어두었기때문에 Connection successful 이 나와야한다.
- 위에서 도커 소켓을 2375 번으로 열어두었기때문에 Connection successful 이 나와야한다.
- PhpStorm > CLI Interpreter
- ADD
- 저장
- ADD
- Php Storm > Language & Framework > PHP
- Docker Container Edit ( Host Path 에는 우분투 Path 를 넣어주고 Container Path 에는 Docker Path 를 넣음)
- Path Mapping Edit
- Index.php 디버그 화면
- Docker Container Edit ( Host Path 에는 우분투 Path 를 넣어주고 Container Path 에는 Docker Path 를 넣음)
참고문서
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=bdh0727&logNo=221478560666
'개발 > etc' 카테고리의 다른 글
K8s 용어정리 (0) 2022.02.14 RabbitMQ 지연큐 만들기 (0) 2020.06.19 RabbitMQ 실패 재시도하기 (NACK 처리 php code sample) (0) 2019.10.02 github 블로그를 jekyll 를 통해 관리해보자 (0) 2018.11.09 MongoDB 를 docker로 세팅해보자 (0) 2018.11.09 - Oracle VitualBox 설치