부트캠프로 윈도우를 주로 사용중이라 오랜만에 맥으로 부팅하고 이거저거 업데이트를 하다보니


docker for mac이 새로나왔다는게 생각나서 설치해봤다.

무척이나 쉽게 설치되며 리눅스에 도커가 설치된 것 처럼 사용 가능하다.




예제가 docker-machine이라서 새로운 방식의 맥용 docker 와는 다르다.


예제와 달리 docker-machine ip를 하면 에러가 난다.


Error: No machine name(s) specified and no "default" machine exists.


한번 삽질 해봤으니 했던 대로 똑같이 테스트를 진행했다.


그런데 data컨테이너가 실패한다.  맥에서는 안되는 모양이다.



LaraDock 저장소의 docker-compose.yml 를 살펴보니 맵핑이 바뀌었다.


그대로 변경을 하니 잘 동작한다.



boot2docker나 docker-machine과는 구조가 많이 달라진 것 같다.



라라벨 개발에 docker를 이용한 LaraDock 이란게 있다는 소리를 들었는데

테스트 해볼 수 있는 좋은 포스팅을 따라해 보기로 했다.


http://blog.appkr.kr/work-n-play/dockerize/


포스팅은 docker-machine에서 실행 하는 것이였는데 나는 VMWare에 우분투를 설치해서 이거 저거 테스트 중이라 샘플 구경할겸 따라 해보기로 했다.

모든 참사는 여기에서 부터 시작한다  '이거 저거 테스트 하던 가상머신' 이라는것이다.


동작하던 아파치와  mariadb를 중지 시키고 하라는 대로 따라했다.


첫번째 벽은 HAProxy에서 시작했다.

도데체 이걸 어떻게 설정 하는거지? 구글링 끝에 찾아낸 설정으로 변경했다.


기존

### HAProxy Container #######################################

    lb:
#        image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
            - "443:443"
        environment:
            - DOCKER_TLS_VERIFY
            - DOCKER_HOST
            - DOCKER_CERT_PATH
        volumes:
            - $DOCKER_CERT_PATH:$DOCKER_CERT_PATH
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


변경  

### HAProxy Container #######################################

    lb:
        # image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


두번째는 이상한 에러가 나왔다.

.env에 ip를 틀렸나? 이상한데? 여러 삽질끝에 에러 메시지를 다시 천천히 살펴봤다. class가 없단건데...

공식문서를 뒤진다.

composer require predis/predis:^1.0

빙고!


로그인을 하는데 DB접속을 할 수 없다고 나온다. 이상하다.. 분명 설명 블로그에는 외부에서도 된다 했는데 안된다.

이상하다...그러다 문득..기존에 테스트로 쓰던  mysql과 충돌난게 아닌가? 하는 생각이 번쩍 들었다...

/var/lib/mysql를 이동하고 도커를 다시 실행시켰더니 잘 동작한다.


.env에 ip를 적을 필요 없이  mysql, redis등으로 적어도 도커컨테이너를 잘 찾아서 접속된다.


삽질끝에 docker-compose 사용법과 컨테이너간의 연결에대한 이해도가 조금 생겼다.도커 재미있구나


everything을 사용하면서 win+s로 핫키를 지정해서 사용하고 있었는데

윈도우8 부터는 이키가 시스템에서 사용되기 시작한것 같다. onenote의 핫키와도 중복된다고한다.

구글링해보니 해결방법 나온다.


HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

새로만들기 - 문자열값

DisabledHotkeys


실컴에 적용하기에 앞서 가상머신에 테스트를 해보려고 설치했다.


윈도우 기능 켜기/끄기에서 선택을 하고 재부팅이 되면 시작-> 실행에서 bash를 실행시키면 다운로드 후에 bash쉘이 실행되며

사용할 계정을 묻는 질문에 대답을 하면 기본 설정은 끝이다.


zsh을 사용할 수 있는지가 궁금해서 테스트를 진행하였다.

sudo apt-get install zsh

일반적인 쉘 변경으로는 사용이 불가했다. 당연한거겠지?

일단 설치를 완료해보자고  oh-my-zsh를 설치했다.

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

명령창이 불편해서 conemu를 실행 하면서 bash를 선택했더니 인식한다. ...와우!!

bash에서 zsh로 가도록 하면 되지 않을까 싶어서 검색해보니 설정 방법이 있다.

http://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/

vim .bashrc

상단에 # for examples 다음줄에 추가

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

그런데 이런 저런 설정을 하려고 보니 unable to resolve가 나온다.

/etc/hostname에 적힌 이름대로 /etc/hosts에 추가 해주면 해결된다.




lvm에 대해서 익숙 하지 않아서 삽질을 했다. lvm명령어에 대해서 미리 숙지를 하고 시작한다.



설치시 Maxvz를 설정하지 않았다면 lvm이 꽤 크게 잡혀서 root의 영역이 작게 잡힌다.


lvm명령어로 크기를 조절하면 될 것 같지만  설치 할 때 maxvz를 지정하고 설치를 하면

내부적으로 설치를 할 때 LVM의 크기를 나머지 남는 전체 공간으로 잡는듯 하다 따라서 어디에도 포함되지 않은 빈공간이 생긴다.


이걸 root에 할당하려면 다음과 같이 한다.


lvextend -l +100%FREE /dev/pve/root
resize2fs /dev/pve/root


하드디스크가 두개 달려 있다면 /dev/sdb를 추가 하는 방법은 두가지가 있는데

별도의 스토리지로 추가 하는 방법과 기본적으로 만들어진 스토리지에 확장 하는 방법이 있다.


확장은 다음 링크대로 진행하면 된다.

https://pve.proxmox.com/wiki/Extending_Local_Container_Storage



별도의 스토리지로 추가 하려면 별도의  lvm을 생성한다.


pvcreate /dev/sdb1
vgcreate pdata /dev/sdb1
lvcreate -l 100%FREE --thinpool thin-pool pdata












ps.

실제 서버에 설치를 해봤는데 적당한 크기로 root영역이 잡힌다. 테스트한 VM의  디스크 크기가 작아서 생긴 문제로 보인다.

'지식창고 > Proxmox' 카테고리의 다른 글

lvm storage 추가하기  (0) 2016.08.03
Proxmox 설치  (0) 2016.07.21

이클립스에서 사용하는 일반적인 플러그인은 다음과 같다.


apply plugin: 'java'
apply plugin: 'eclipse'



gradle build를 하면 jar파일이 잘 생성되는데 배포용 lib들을 깔끔하게 모아주는 방법이 없을까 찾아봤더니 있었다.


apply plugin: 'java-library-distribution'


build\distributions 폴더에 tar, zip 두가지 형태의 배포용 압축 파일이 생성된다.


단독 실행형 jar를 생성할 경우엔 다음 플러그인이 좋다.

apply plugin: 'application'


'지식창고 > Java' 카테고리의 다른 글

eclipse workspace 삭제  (0) 2018.12.05
eclipse 설치한 플러그인  (0) 2018.04.10
gradle 유용한 플러그인  (0) 2016.07.25
eclipse neon으로 옮기면서 삽질  (0) 2016.07.15
eclipse + gradle => buildship  (0) 2016.07.04
apache commons-imaging을 gradle 에서 설정하기  (0) 2015.09.18

실제 서버에 설치 하기 전에 어떤 모양인지 궁금해서 VM에 설치를 해봤다.


youtube를 검색해보니 영상이 있어서 그걸 참고 했다.




내가 설치 한것은 최신 버전인 4.2 라서 영상과는 조금 다르다.


영상에서는 Guest OS를 고를때 ESX를 선택 하는데 나는 Linux Ubuntu를 선택하고 설치했다.

 - Debian을 선택하는게 맞는듯 하다.


테스트라 일단 다음다음 형식으로 설치 완료. 정말 간단하다.


쉘접속을 해서 일단 업데이트 설정을 수정한다.


https://pve.proxmox.com/wiki/Package_repositories#Proxmox_VE_No-Subscription_Repository


수정했으면 업데이트 그리고 재부팅


apt-get update

apt-get dist-upgrade

reboot


웹접속 주소로 접속해서 로그인을 한다.


테스트를 위해서 컨테이너 템플릿으로 CentOS 7을 받아서 설치를 했는데 템플릿 방식이라 몇분안걸리고 실행된다.


local 선택-> Content -> Templates



웹콘솔 접근되는걸 확인했으니 xshell로 접속해보려고 하는데 안된다??? 응?

ping은 동작한다. sshd가 안깔린 모양이다. 그럼 설치해줘야지 (이걸 몰라서 한참 구글링..)


https://forum.proxmox.com/threads/lxc-network-access.24404/


yum install openssh-server
chkconfig sshd on
service sshd start


 Host 콘솔에서 Lxc에 바로 접속할 수도 있다.


pct enter VMID


일반 VM도 테스트 해봤는데 잘된다.


기본적으로 가상머신들은 호스트 재부팅시 실행되지 않는다. 옵션에서 조정해야한다.




'지식창고 > Proxmox' 카테고리의 다른 글

lvm storage 추가하기  (0) 2016.08.03
Proxmox 설치  (0) 2016.07.21

eclipse neon으로 옮기면서 기존에 .gradle 을 삭제하고 다시 설정 하게 손보는 중이였다.


딱 한 프로젝트만 error표시가 뜨는데 딱히 에러 메시지는 보이지도 않고 이상했다.


여기 저기 옵션을 뒤적거리다 보니 에러 표시가 보였다.


Persisted container 저게 구버저전 호환용인가? 뭐지?  나는 Gradle을 사용하니 필요가 없을것 같았다.


샘플로 프로젝트를 생성해보니 저런 항목은 없다.  기존 프로젝트 호환용으로 설정된게 아닌가 싶다.


remove로 지우니 에러 표시가 사라지고 깔끔하게 동작한다.


아마도 일반적인 상황에서는 안생길듯 하다. 내경우엔 개발중인 SNAP SHOT을 포함시켜서 발생한것으로 보인다.



이클립스에 gradle 을 사용할때 보통



이걸 설치 하거나 수동으로 설치를 했었는데


neon이 새로나와서 테스트 해보려고 살펴보니 못보던 플러그인이 보였다.


Buildship 이라고 새로 나온 모양이다.


기존플러그인을 삭제하고 새로 설치를 하니 프로젝트 아이콘이 초기화되었다.

프로젝트 형식을 변환하자.



기존에 gradle플러그인은 뭔가 좀 intellij에 비해서 이질적이였는데


샘플 프로젝트를 생성해보니 좀 더 자연스러워진 느낌이다.


새로 프로젝트를 만들어봤다.


Gradle Project를 선택하고 프로젝트 명을 입력하고 다음을 누르면 쉽게 프로젝트가 생성된다.



프로젝트의 구조가 gradle답게 변했다.

Tasks에서 build를 하면

결과가 보이고


프로젝트 경로의 Build\libs에 보면 jar파일이 잘 생성되어 있다.


기존 플러그인에 손이 익어서 새로운 시스템이 좀 불편해 보이는 점도 있는데 차차 적응 해나가야지




phpstorm으로 laravel을 해보려고 구글링으로 셋팅중 gulp창이 보여서 열어봤더니 설정을 하라고 나온다.


Gulp는 어디서 들어봐서 설정시작


 1. Node.js설치

 2. npm install -g gulp로 설치

 3. 설치하면 자동적으로 phpstorm에서 인식함

    

     깔끔히 설치완료된 모습 이 모습을 보려고 다음과 같은 삽질을했음


 ● Gulp 창에서 npm install gulp 를 하라고 나옴

 ● 응? Gulp설치 했자나 뭐지? 어쩌란거야?

 ● package.json이 패키지 관리자면...알아서 필요한거 받아줄텐데...어떻게 하지

 ● npm init....이건 새로 만들때 쓰는거고..

 ● npm install gulp를 일단 해보니...되긴한데..laravel-elixir가 필요하단다..역시..뭔가 빠졌어.

 ● 삭제는 어떻게 하지?  npm remove gulp 그런데 node_modules 경로에 무슨 폴더다 이리 많아..
  

● 그냥 폴더 지워도 되는것 같다..다시 구글링 분명 패키지 자동 설치를 해줄꺼야.

찾았다. package.json의 경로에서 npm install

● 아직까지 이해가 안되는점

    ● 패키지를 global로 인스톨했는데 왜 프로젝트 경로에도 설치를 해야 하는걸까?

 

    

'지식창고 > 삽질' 카테고리의 다른 글

윈도우10 시작 메뉴 문제  (0) 2016.10.25
phpstorm gulp 설정  (0) 2016.07.01