1. 통증이 해결 될 지점
1. 백엔드 개발 환경을 구축 할 필요가 없습니다.
2. 개발 환경의 변경은 미러를 동기 업데이트로 변경하면됩니다.
3. Eclipse와 같은 IDE 도구가 필요하지 않습니다.
4. 스위치 개발 프로젝트
2. 솔루션
Docker를 사용하여 Ubuntu 이미지를 시작하고, 컨테이너에서 프로젝트가 요구하는 개발 환경을 구축하고, 로컬 코드를 컨테이너에 마운트하고, 마운트 볼륨을 사용하여 컨테이너의 환경을 사용하여 코드를 컴파일하고 실행하며, 호스트는 Docker가 노출 한 포트를 통해 컨테이너의 서비스에 액세스하여 Docker를 배포하고 수행 할 필요가 있습니다.
3. Docker에 대해
Docker를 이해하십시오
이 기사는 Docker의 지식을 자세히 설명하지는 않습니다. 관련 기사가 많이 있습니다. 관심이 있으시면이 책을 읽을 수 있습니다. Docker를 사용하기위한이 도구의 개발로 제한됩니다. 잘못된 것이 있다면, 그것을 지적하십시오.
촉진 신경
Daocloud Accelerator
4. 환경을 구축하십시오
Docker를 다운로드하고 설치 한 후 시작할 수 있습니다. 우리가 아래에서 이야기하는 것은 Java이지만 다른 환경에도 동일하게 적용됩니다.
우분투 이미지를 얻으십시오.
Docker는 Ubuntu를 당깁니다
완료하면 docker images 실행하면 새로 업데이트 된 이미지가 표시됩니다.
컨테이너를 입력하십시오
Docker Run -it Ubuntu
5. 소프트웨어를 설치하고 환경 변수를 구성하십시오
첫 번째 업데이트 apt-get
apt-get 업데이트
다음으로 apt-get install * 사용하여 필요한 소프트웨어를 설치할 수 있습니다. 그렇지 않은 경우 설치 패키지를 다운로드하여 직접 설치하십시오. 동시에 환경 변수를 구성하십시오. 나는 여기에서 자세히 설명하지 않을 것입니다.
VI. 서비스를 시작하십시오
Tomcat 디렉토리를 입력하고 서비스를 시작한 후 브라우저에서 0.0.0.0:8080을 열십시오. 아무것도 잘못되지 않으면 서버에 액세스 할 수 없음을 알 수 있습니다. 방금 시작한 서비스가 Docker에 있기 때문입니다. 작업을 수행하지 않으면 Docker 내부의 서비스에 액세스 할 수 없습니다.
따라서 컨테이너를 먼저 나가자
출구
종료 후 docker ps -a 실행하면 방금 컨테이너가 여전히 존재한다는 것을 알 수 있습니다. Docker를 처음 접하는 대부분의 사람들은이 실수를 저지르고 컨테이너를 빠져 나간 후에 컨테이너가 파괴 될 것이라고 생각하지만 실제로는 그렇지 않습니다.
이 컨테이너를 다시 입력하려면 다음 명령을 실행할 수 있습니다. 컨테이너 ID를 복사하십시오.
Docker exec -it 컨테이너 ID bash
컨테이너가 여전히 작동 중이지만 지속되지는 않습니다. 발생하지 않도록 컨테이너의 내용을 수정 한 후 가능한 빨리 지속됩니다.
도커 커밋 컨테이너 ID Java
이 명령은 컨테이너를 Java라는 새로운 이미지로 유지하는 것을 의미합니다.
새로 생성 된이 이미지를 시작하십시오.
Docker Run -IT -P 8080 : 8080 Java
스타트 업 명령의 변경에주의를 기울이면 추가 -P 명령이 있습니다. 이 명령은 컨테이너에 8080 포트를 호스트에 노출시키는 것을 의미합니다.
0.0.0.0:8080 다시 방문하면 우리는 작은 고양이를 볼 수 있습니다. 너무 귀엽다.
컨테이너가 여전히 지금 우리의 기억을 차지하고 있다면 어떻게해야합니까? 그를 죽여라.
Docker RM 컨테이너 ID
첫 번째 단계가 완료되었으며 다음은 코드를 통합합니다.
7. 통합 코드
우리가 방금 시작한 컨테이너는 완전히 독립적 인 블랙 박스입니다. 코드가 어디에 있는지 알지 못하므로 호스트와 컨테이너가 디렉토리를 공유 할 수 있도록 Docker의 마운트 볼륨을 사용해야합니다.
죄송합니다. 방금 시작한 컨테이너를 죽일 것입니다.
Docker Run -it -v/user/name/web :/opt/root -p 8080 : 8080 Java
스타트 업 명령은 새로운 멤버 -v를 추가했습니다. 이 명령의 의미는 사용자의 루트 디렉토리 아래의 웹 디렉토리를 /opt /root 디렉토리의 컨테이너에 매달리는 것입니다.
디렉토리에 들어간 후, 우리는 웹 디렉토리의 파일이 몇 년 동안 자본 Mary Sue가 전화를 기다리고있는 것처럼 조용히 내부에 놓여 있음을 알 수 있습니다.
전화를 시작하십시오.
MVN Clean Install -U -Plocal -dskiptests
일정 기간이 지나면 성공적인 포장을위한 프롬프트가 표시됩니다. 전쟁 패키지를 Tomcat Webapps 디렉토리에 복사하면 프로젝트에 액세스 할 수 있습니다.
이 시점에서 우리 프로젝트는 마침내 실행되기 시작했지만 몇 가지 문제가 있습니다.
1. 매번 그런 긴 명령을 실행해야합니까? 매우 번거 롭습니다.
2. 코드를 변경할 때마다 다시 포장되어야하며 시간이 오래 걸립니다.
3. 시작 로그를 읽는 방법? 오류를보고하면 어떻게해야합니까?
4. 서비스를 다시 시작하지 않고 프론트 엔드 템플릿 파일을 수정하는 방법은 무엇입니까?
이러한 문제를 바탕으로 스크립트를 작성해야합니다.
8. 쉘 스크립트
스크립트는 다음 지침을 제공합니다
-Y 업데이트 Maven 패키지 컴파일 패키지-릴리스 시작 Tomcat
-P Compile-Package Release-Start Tomcat
-R Tomcat을 다시 시작합니다
-C 자바 파일을 다시 컴파일 - 릴리스 - 시작 Tomcat
-w는 VM 파일, 기본 5S 동기화를 한 번 듣습니다
-L Tomcat 로그를 봅니다
-H 도와주세요
# 변수가 필요합니다 변경된 ############################################# ################################################## ############################################################################. ###################################################### ##############################################################################YOUNYDO#################################################### ################################################## ############################################################################. ###################################################### ##############################################################################YOUNYDO#################################################### ################################################## ############################################################################. ###################################################### ##############################################################################YOUNYDO#################################################### ################################################## ############################################################################. 프로젝트 시작 주소 tom_root = "$ {tom_url}/webapps"# 파일 청취 간격, 단위 WT = 5# copy vmwc_vm = "src/main/webapp/web-inf/tpl/usr/share/tomcat7/webapps/root/web-inf/"# copy classwc_java = "target/class /usr/share/tomcat7/webapps/root/web -inf/" # 일반 메소드 # # 새 패키지 기능 사용 newWar () { # 오래된 패키지 삭제 rm -rf $ {tom_root}/* # 전쟁 패키지 mv $ {war_url} $ {tom_root}/root.war} # wartart tomcat rantart () # 서비스 시작 $ {tom_url} /bin/startup.sh # 시작 로그 테일 -f $ {tom_url} /logs/catalina.out} # getopts} # 지침 처리 ": yprcwlh"yprcwlh "Optnamedo Case"$ optname "in"y ") echo"echo "jar install"mvn clean install " -u -us $}. Newwar 재시작 ;; "P") Echo "Repackage"MVN Clean Package -p $ {dev} -dskiptests Newwar Restart ;; "r") echo "다시 시작 tomcat"재시작 ;; "C") Echo "서비스를 다시 컴파일하고 다시 시작하십시오. "w") echo "VM 파일을 들으십시오." # VM Watch -n $ {wt} cp -r $ {wc_vm} ;; "l") echo "로그인" # vm tail -f $ {tom_url} /logs/catalina.out ;; "h") echo "-y 업데이트 maven 패키지 -컴파일 -패키지 -패키지 -릴리스 -시작 원 스톱 서비스"echo "-p compile and package 릴리스 시작"echo "-r thomcat"echo "-c Rejava 파일을 다시 시작하고"echo "-w"vm 파일을 듣고, " -"echo " -"echo " -"echo " -"echo " -"echo " - ;; ESAC 9. 팀으로 홍보
위의 세 단계 후에 우리의 도구가 구축되었지만 다른 사람들은 어떻게 사용할 수 있습니까?
Docker는 클라우드 서비스를 제공합니다. 우리의 이미지가 충분히 작 으면 다른 사람들이 다운로드 및 실행할 수 있도록 이미지를 클라우드로 푸시 할 수 있지만 이미지가 1G를 초과했습니다. . . 따라서이 방법을 사용할 수 없습니다.
Docker Save Java -o ./java.tar
위의 명령을 사용하여 이미지를 로컬 파일 java.tar로 유지 한 다음 다른 수단을 통해 다른 급우의 기계로 전송하십시오. 우리는 몇 분 동안 에어 드롭을 사용합니다.
Docker Load -I java.tar
다른 학생들은이 명령을 사용하여 우리의 이미지를 그의 도커에로드 할 수 있습니다.
그런 다음 쉘 스크립트를 프로젝트 루트 디렉토리에 통합하면 행복하게 사용할 수 있습니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용이 귀하의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.