안녕하세요 선생님 일반 프로젝트에서 많이쓰는 CI/CD 구축방법 실습 따라하고 있는데 위와 같은 오류가 게속 발생합니다.ㅠ 인텔리제이안에서 setting,project structure 버전도 17로 맞추고, 환경변수도 확인해보고 java version도 다 확인해봤는데 같은 오류가 떠서 질문드립니다... 혹시 다른게 원인일까요?
안녕하세요 도커가 npm 패키지 변경내역을 어떤식으로 알 수 있는건지 원리가 궁금해서 질문드립니다. 도커 자체에서 package.json과 package-lock.json파일이 패키지에 관련된 파일이란 것을 인식해서, 해당 파일들의 내용이 변경여부에 따라 캐싱이미지를 사용할지 말지 결정하는건가요? 감사합니다.
맥에서도 사용해보고 싶어서 git을 설치하는 과정에서 해당 에러가 지속적으로 나와 brew update를 먼제 해봤는데 homebrew-core is a shallow clone. 또 에러가 나와서 오류 창에서 알려준데로 git -C ......이부분 명령어를 실행해줬는데 저 에러가 안없어지더라구요... 그리고 ARM processor 에러 부분도 shallow clone 이 에러가 납니다... 왜그럴까요... 혹시 실습때 git 이 반드시 필요한 걸까요? git의 역할이 궁금합니다...
windows에서 테스트 진행 중 입니다. 커뮤니티의 모든 글을 읽고 다 진행해봤습니다. ansible windows -m win_ping -u z2x2c 해당 명령어를 입력하면 성공했다고 나옵니다. 192.168.219.59 | SUCCESS => { "changed": false, "ping": "pong" } 근데 ansible-server의 /root/k8s 해당 경로에서 ansible-playbook -i hosts k8s-cicd-deployment-playbook.yml -u z2x2c 해당 명령어를 입력하면 [WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details PLAY [Create pods using deployment] ************************************************************************************ TASK [Gathering Facts] ************************************************************************************************* fatal: [192.168.219.59]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: z2x2c@192.168.219.59: Permission denied (publickey,password,keyboard-interactive).", "unreachable": true} PLAY RECAP ************************************************************************************************************* 192.168.219.59 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0 위와 같은 오류가 나옵니다.. 왜이러는지 답변 가능할까요? 너무 스트레스 받네요 ㅠㅠ..
안녕하세요 덕분에 도커를 이해하기 시작한 수많은 수강생 중 한명입니다! 다름이 아니라 도커볼륨을 이용한 소스 코드 변경 강의에서 운영체제가 window라서 docker run -it -p 3000:3000 -v /usr/src/app/node_modules -v %cd%:/usr/src/app {이미지 이름} 를 해도 볼륨이 작동하지 않고 $(pwd) 로 바꾸어서 실행을 시켜봐도 실시간으로 수정이 되지 않아서 질문 드립니다!
안녕하세요 도커 volume 관련해서 질문드립니다. 저희가 수업에서는 db에 있는 data들을 volume에 연결하여 사용하였잖아요. 근데 예를들어 nodejs 백엔드 프레임워크와 mongodb를 사용한다고 했을 때 제가 백엔드 서버에서 db서버로 유저 데이터를 보낸다했을 때 그 보낸 데이터가 제 로컬 피시에 저장이안되고 db자체 서버에 저장되는거같은데 굳이 volume을 왜 사용하는건가요? 아 그리고 backend서버에도 volume이 필요할까요? 필요하다면 어떨때 보통 volume에 데이터를 저장하나요?
제가 도커나 클라우드 운영 경험은 전혀없습니다. [운영환경] 에서는 jenkins에서 war파일만들어서 docker-server에 전달해서 도커 이미지만 만들고, ansible-server에서 docker-server에서 만든 도커 이미지로 컨테이너를 만들어서 실행하는데요. 1) 앞 강좌에서 [ 로컬환경 ]에서는 이미지 push하고 pull해서 컨테이너 만들어서 진행했었는데, 운영환경에서는 이런식으로 진행하면 안되나 보죠? 2) 현 강의대로 하면 [ 운영환경 ] 에서 docker-server가 10개 라면 jenkins에서 10개 서버에 다 들어가서 이미지 만들어야 하는데... 실제 운영에서 이렇게 운영하는지 아니면 그냥 강좌라서 이런식으로 구성한건지 궁금합니다. 아니면 실제 운영환경이 아니라 AWS에서 개발환경 을 이렇게 구성한다는 얘기인가요? 감사합니다.
[INFO] ------------------------------------------------------------------------ Waiting for Jenkins to finish collecting data [JENKINS] Archiving /var/jenkins_home/workspace/my-thrid-project/pom.xml to com.njonecompany.web/web/1.0/web-1.0.pom [JENKINS] Archiving /var/jenkins_home/workspace/my-thrid-project/target/hello-world.war to com.njonecompany.web/web/1.0/web-1.0.war channel stopped [DeployPublisher][INFO] Attempting to deploy 1 war file(s) [DeployPublisher][INFO] Deploying /var/jenkins_home/workspace/my-thrid-project/target/hello-world.war to container Tomcat 9.x Remote with context null ERROR: Build step failed with exception org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/my-thrid-project/target/hello-world.war] at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1235) at hudson.FilePath.act(FilePath.java:1218) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at PluginClassLoader for deploy//hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at PluginClassLoader for deploy//hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1917) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:446) Caused by: java.net.ConnectException: Connection timed out at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/sun.net.NetworkClient.doConnect(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) ... 19 more java.net.ConnectException: Connection timed out at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.Net.connect(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/java.net.Socket.connect(Unknown Source) at java.base/sun.net.NetworkClient.doConnect(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source) at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.http.HttpClient.New(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at PluginClassLoader for deploy//org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1235) at hudson.FilePath.act(FilePath.java:1218) at PluginClassLoader for deploy//hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at PluginClassLoader for deploy//hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at PluginClassLoader for deploy//hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1917) at PluginClassLoader for maven-plugin//hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:446) Build step 'Deploy war/ear to a container' marked build as failure Finished: FAILURE 톰캣자체에는 문제가 없는데, 젠킨스에서 연결이 계속 안되어서 질문드립니다. 젠킨스를 실행한 ec2 ssh에서 톰캣 서버랑 포트로 연결이 안되는데 이 문제 때문일까요?
해당 서버에서 도커를 설치하던데... sudo yum install -y docker 이렇게 설치한 도커엔진은 운영에서 항상 무료로 사용이 가능한가요? Docker CE(Community Edition)는 무료라던데. 저 명령어로 설치되는 건 어떤 버전인가요? Docker CE 이 맞나요?
DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
service create 시에 아래와 같이 에러가 발생합니다. 에러가 발생한 노드의 ps list 입니다. create만 되고 up이 되지않은 상황입니다. 에러를 자세히 확인 해보니 아래의 스크린샷과 같이 되어있습니다. starting container failed: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: can't copy bootstrap data to pipe: write init-p: broken pipe: unknown 어떻게 해결할 수 있을까요?
저는 Ubuntu Desktop 사용하는데 Ansible 이미지를 어디서 받는건가요? 윈도우나 MacOS(intel, m1)는 있는데, 우분투에서 실습하는 사용자를 위한 Ansible 이미지 다운로드는 어디서 하나해서욤... 도커 허브에 가서 검색하니깐. alpine/ansible , ansible/ansible 뭐 이런것들 있던데, 이런것 중에 하나 사용하면 되는건가요? 그리고 왜 별도로 Ansible 이미지 만들어서 제공해주시는지 그 이유도 궁금합니다. 뭐 이유가 있을테니깐요. 혹시 우분트 사용자는 도커를 써서 실습하는게 아니라 그냥 Ansible설치해야 하는건가요? ㅋㅋㅋ 처음이라 잘 모르겠네요. 따라서 할려면 왠지 도커 안에다가 설치해야 할것 같은데...ㅎㅎ 일반적으로 운영에서는 Ansible을 어떻게 사용하는지도 궁금합니다. (도커안에서 운영하는지 아니면 그냥 설치해서 사용하는지 궁금합니다.) 감사합니다.
안녕하세요. 강의를 듣다보니 문득 궁금한게 생겨서 질문올립니다. 저희가 image로 컨테이너를 만들고 container에서 변경사항을 만들고 그걸 commit한다면 기존에 있는 image layer위에 쌓는다고 얘기하셨는데 그렇다면 기존의 image에 있는 index.html파일 안에는 원래 nginx에서 갖고있던 index.html이 있고 그위에 저희가 변경한 index.html이 있는거잖아요 그럼 이걸 run 했을때는 어떻게 되는건가요? 밑에 layer부터 순차적으로 run하면서 기존의 index.html을 덮어 쓰는건가요?