묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스 jdk 설정할때 오류
이런식으로 오류뜨는데 어떻게 해결해야하나요 ㅠㅠ 같은 컨트롤러에 없다는게 무슨뜻인지.. ㅠㅠ
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ssh 사용 이유
안녕하세요 ssh 사용 이유에 대해 궁금해서 질문 드립니다!1. 호스트에서 특정 docker에 접속할 때 ssh를 쓰는 이유가 무엇인가요? 그냥 exec로 접속하면 안될까요? 젠킨스에서 docker 접속할 때만 ssh 쓰면 되지 않나요? 이유가 궁금합니다!
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Git의 하나의 Repository 안에서 branch별 배포가 가능한가요?
안녕하세요. 저는 IT 교육 프로그램에서 5명의 팀원과 프로젝트를 진행하고 있습니다. GitLab에서 하나의 Repository 안에서 작업을 하고 있습니다. 테스트 서버와 실환경 서버를 분리해서 진행해보려고 합니다. 그러기 위해 master 브랜치에 Push 될 때는 테스트 서버에 배포를 하고, master 에서 테스트 이후에 안정적인 코드를 production 이라는 브랜치에 Push 하려고 합니다.이때 하나의 Repository에서 브랜치별로도 다른 서버로 배포를 진행할 수 있나요?
-
해결됨Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스의 Build - Test - Package 단계에서 Test 코드를 작성하지 않은 경우
안녕하세요. 저는 취준생으로서 자동화를 경험하고자 강의를 듣기 시작했습니다.지금 저는 6명 인원으로 웹사이트 개발 프로젝트를 진행하며 Java/SpringBoot 로 백엔드 개발과 배포 포지션을 맡았습니다. 스프링 프로젝트를 만들면, test 폴더에 test코드를 작성하여 단위테스트와 통합테스트를 진행할 수 있는 것으로 알고있습니다.만약, 프로젝트에서 단위테스트 코드를 작성하지 않았다고 가정한다면 젠킨스의 Build - Test - Package 단계에서 Test 부분은 생략되어 Package가 진행되나요?
-
해결됨따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
윈도우로 volume 적용 실패할 때
아래 n 번째에 윈도우에서 %cd% 로 경로 설정해도 안되는 증상이 같아서 해결방법을 알려주신 분이 계신데, 그 방법으로 해결해서 글 남깁니다. docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v "/$(pwd)/server.js:/usr/src/app/server.js" thdqudgns/node처럼, 마운트 할 앞 경로 전체를 큰 따옴표로 감싸주고,앞쪽에는 /${pwd}/server.js 를 적어서 파일을 명시해주고, 뒤쪽에도 /usr/src/app/server.js로 파일을 명시해주니 예제는 잘 해결되었습니다. 그러나 고민이...실제로 프로젝트를 진행하면서 배포를 하고 빌드를 할 때에는 폴더 단위로 작업이 이루어져야 하는데, 파일 단위로만 되는 것을 확인하여서 앞이 막막합니다... ++ 터미널을 우분투 (wsl) 로 열어서 $(pwd)docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app thdqudgns/node 로 하니까 잘 되네요.. 터미널이 이상한 걸로... 조만간 토이프로젝트를 AWS에 올릴 예정인데 문제가 없기를...
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
프로젝트 진행중인데..
현재 프론트와 백 나눠서 프로젝트를 진행중입니다.강의에서는 하나의 레파지토리에 프론트폴더, 백앤드폴더, docker-compose.yml 파일이 있던데저희는 오가니제이션으로 사용중이며, 프론트레파지토리, 백앤드레파지토리 나뉘어져있는 상황입니다. 이 상황에서 프론트레파지토리는 nginx를 위한 Dockerfile과 리액트를 위한 Dockerfile,백앤드 레파지토리는 스프링부트에 대한 Dockerfile, docker-compose.yml에는 redis 및 스프링부트에 대한 dockerfile정보 등이 들어가는게 맞을까요?결론은, nginx가 백앤드 레파지토리에도 필요한 것이 일반적인 것인지 여쭤봅니다!
-
해결됨Jenkins를 이용한 CI/CD Pipeline 구축
VM환경의 Docker에 배포하려고 합니다.
Windows, MacOS(Intel chip)를 사용하는 사용자를 대상으로 실습하실 수 있으며, VM 설치에 대한 부분은 별도의 강의에서 진행되고 있습니다. (2023-07-17 공개강의 오픈 예정)라고 하셨는데, 별도의 강의가 어디에 있는지 알고싶습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
vi /etc/sysconfig/docker 하면 new File만 나와요
이거 왜이럴까요..??
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의와 다른 출력에 대한 내용 정리
[internal] load .dockerignore: .dockerignore 파일을 로드하는 단계입니다. .dockerignore 파일은 Docker 이미지를 빌드할 때 무시할 파일 또는 디렉토리를 지정하는 파일입니다.[internal] load build definition from dockerfile: Dockerfile을 로드하는 단계입니다. Dockerfile은 이미지 빌드에 필요한 설정과 명령어들을 정의하는 파일입니다.[internal] load metadata for docker.io/library/alpine:latest: Docker Hub에서 Alpine Linux의 최신 이미지에 대한 메타데이터를 로드하는 단계입니다. FROM docker.io/library/alpine 명령어에서 사용된 "alpine" 이미지를 가져오기 위한 작업입니다.[1/1] FROM docker.io/library/alpine: Alpine Linux를 기반으로 이미지를 생성하는 단계입니다. FROM 명령어는 이미지의 베이스로 사용할 이미지를 정의하는데, 여기서는 Docker Hub의 Alpine Linux 이미지를 사용합니다.exporting to image: 이미지를 빌드하고 있는 단계가 끝났으며, 이미지를 내보내는 단계입니다.=> exporting layers: 이미지의 레이어를 내보내는 단계입니다. Docker 이미지는 여러 레이어로 구성되어 있으며, 각 레이어는 변경된 파일들을 포함하고 있습니다.=> writing image sha256:c85225625fb8e8572c14c74944213a43a1b92fe78b270278bde228: 최종 이미지를 기록하는 단계입니다. 이미지의 SHA256 해시값을 보여주며, 해당 해시값으로 이미지를 식별할 수 있습니다
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker rm `docker ps -a -q` 명령어 안 먹으시는 분들에게
강사님은 mac 환경에서 진행 하셔서 cmd 에서 ` 백틱으로 사용하십니다. 윈도우 환경에서는 ` 대신 $() 사용을 해야하고 해당 기호도 powershell에서만 적용이 됩니다. docker rm $(docker ps -a -q)위의 명령어를 powershell에 입력 하시면 됩니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
ElasticBeanStalk생성 후 보안그룹 적용
EB -> 구성 -> 보안그룹을 누르면 위와 같은 에러가 발생합니다. 이유가 무엇인가요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
ElasticBeanstalk생성시 질문입니다.
플랫폼에 docker를 누르는 부분이 나와있지않습니다. 바로 생성이 나오는데 그냥 생성버튼을 눌러야할까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
도커로 톰캣을 올려서 배포하려고하는데.
org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/My Third Project/target/user-service-1.0.war] at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1198) at hudson.FilePath.act(FilePath.java:1181) at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at 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 hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: java.io.FileNotFoundException: http://172.20.10.2:8088/manager/text/list at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1920) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:577) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) ... 19 more 꼭 톰캣매니저가 있어야 배포가 될까요?도커이미지로 설치하면, 톰캣매니저는 없네요,,
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
프로젝트 중인데 빠른답변 부탁드립니다..ㅜㅜ
현재 프론트와 백 나눠서 프로젝트를 진행중입니다.강의에서는 하나의 레파지토리에 프론트폴더, 백앤드폴더, docker-compose.yml 파일이 있던데저희는 오가니제이션으로 사용중이며, 프론트레파지토리, 백앤드레파지토리 나뉘어져있는 상황입니다. 강의처럼 Docker, Travis ci를 이용해서 자동배포를 할 예정인데,1. 이 상황에서는 docker-compose.yml파일과 nginx를 위한 Dockfile이 어느곳에 위치하게 되나요?2. 또, 강의에서는 mysql을 도커이미지로 만들고있던데, 만약 로컬에 이미 mysql이 깔려있고, AWS RDS를 이용중이라면 mysql에 대한 도커파일이 필요없는게 맞을까요?jwt토큰기반으로 프로젝트를 진행중이라 AT를 저장하기위해 redis를 사용중인데 이 상황이라면 redis에 대한 도커파일도 필요한건가요? 만약필요하다면 도커파일을 어떤식으로 작성해야하나요? ㅠㅠ또 강의에서는 travis ci를 하나의 레파지토리(프론트 폴더와 백앤드폴더)로 하여 자동배포중이던데 1번에서 언급한것처럼 두개의 레파지토리로 나뉘어져있을 경우 travis ci에는 두개로 등록하여 빌드 및 테스트하는게 맞을까요??
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
프로젝트 중인데 강사님 질문입니다 ㅜㅜ
현재 프로젝트 진행중입니다. 전 백앤드담당이긴한데, 여튼 프론트분들의 프로젝트를 로컬에서 실행해보려고하는데요. 자꾸 이렇게 오류가 납니다.. 왜이런건가요? 다음은 Dockerfile.dev파일입니다.강의대로 Dockerfile.dev를 작성하였습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
MultiNode 구현시 Slave노드를 위해 추가하는 Docker서버
해당 도커서버도 아래 명령어처럼 privileged를 사용하지 않고 2번째 방식으로 작성하면 될까요?? docker run -itd --name docker-server -p 10022:22 -p 8081:8080 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
DOOD방식 -p 8081:8080 마운팅으로 접속 안됨.
처음 SSH를 기동할 때 2번째 방법인 DOOD 방법으로 기동하였습니다.docker run -itd --name docker-server -p 10022:22 -p 8081:8080 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init코드를 보시면 아시다싶히 -p 10022:22 마운팅과추가로 -p 8081:8080 마운팅을 추가하였습니다. 이후 Jenkins로 빌드를 진행하였고 아래와 같이 빌드가 정상적으로 처리가 되는것이 확인이 됩니다.하지만 localhost:8081/hello-world로 접속하면 접속이 안되고 localhost:8080/hello-world로 접속해야만 접속이 가능해집니다. 당연히 제대로 된다면 둘 다 접근이 가능해지겠죠?근데 톰캣 포트로만 접근이되버려서...제가 처음 ssh를 기동할때 분명 8080포트를 8081로 마운팅을 했는데 왜 8081포트로 접속이 안되는건지 원인과 해결 부탁드립니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
dood방식 yum sed 작업
DOOD방식에서는 그럼 yum install -y iptables net-tools sed -i -e 's/overlay2/vfs/g' /etc/sysconfig/docker-storage위 두 명령어를 실행하지 않아도 되는건가요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
docker-server eth0 inet주소로 ssh접근이 되지 않습니다
맥 OS는 Ventura 13.2.1입니다.도커 이미지를 docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init 로 실행하였습니다.net-tools하고 ssh서버를 깔았구요, docker-desktop으로 컨테이너에 terminal에서 확인을 했을 때 [root@147277fe7c68 etc]# service sshd statusRedirecting to /bin/systemctl status sshd.service● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-07-09 04:34:51 UTC; 2h 40min ago라는 결과가 출력되어 ssh도 잘 깔려있고 22번 포트가 정상적으로 실행되는지 확인했을 때 LISTEN으로 잘 동작했습니다[root@147277fe7c68 etc]# netstat -an | grep LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTENtcp6 0 0 :::22 :::* LISTEN 도커 이미지를 실행하고 centOS8임을 확인하고 ssh서버까지 실행된다고 이해했습니다 ssh root@localhost -p 10022를 사용해서 로컬호스트에서 접속할때는 정상적으로 잘 접근됩니다. 그런데 ifconfig를 사용해서 eth0의 주소를 확인 해 보면 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 65535 inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255라고 떠서 172.17.0.3으로 접속하면 되겠다고 이해 했는데 로컬 iterm2를 사용해서 접속해보면 접속이 거부됩니다. iterm2과 terminus에서는 시간초과가 나고 👤 Starting a new connection to: "172.17.0.3" port "10022"⚙️ Starting address resolution of "172.17.0.3"⚙️ Address resolution finished⚙️ Connecting to "172.17.0.3" port "10022"😨 Connection failed: connection timed out. No more addresses to try. jenkins에서는 jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [docker-server]. Message [java.net.ConnectException: Connection refused (Connection refused)]]라는 에러가 뜹니다.어느부분이 문제인지 모르겠습니다 흑흑
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker 내부의 ansible컨테이너에서 ssh root@ip로 접근할 수 있는이유가 궁금합니다.
ssh가 22번포트를 사용함으로 별도로 포트번호를 지정하지않아도 ssh root@ip로 접근이 가능한건가요? 만약 그렇다면 컨테이너 내부포트가 22번이 아닌 다른 컨테이너에게도 똑같이 접근할 수 있나요?원래 컨테이너 내부는 userid@내부ip로 접근할 수 있는건가요?