docker-compose up -d 할때 leafy_leafy-front_1가 자꾸 꺼지고 restart 되는게 반복되는데 docker logs leafy_leafy-front_1 를로 확인해본결과 exec /usr/local/bin/ docker-entrypoint.sh : no such file or directory 라는 오류가 있네요 윈도우로 수업 들을때는 문제없었는데 aws ec2 아마존 리눅스 에서 돌려보니 해당 오류가 계속 생겨서 질문드립니다 검색 및 예전 답변을 참고해서 crlf 를 lf 로 바꿔도보고 새로 clone 해보고 했는데 여전히 오류 입니다. 윈도우에서는 되다가 오히려 리눅스 환경에서 안되는게 이유를 모르겠습니다 ㅠㅠ 답변 부탁합니다
https://www.inflearn.com/community/questions/1532164/docker-%EB%B0%B1%EC%95%A4%EB%93%9C-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%98%A4%EB%A5%98 이 글처럼 똑같이 안되고있습니다. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processorMetrics' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.micrometer.core.instrument.binder.system.ProcessorMetrics]: Factory method 'processorMetrics' threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support .ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1616) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1573) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1417) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1349) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2119) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2113) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryConfigurer.addBinders(MeterRegistryConfigurer.java:87) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10] at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryConfigurer.configure(MeterRegistryConfigurer.java:68) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10] at org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryPostProcessor.postProcessAfterInitialization(MeterRegistryPostProcessor.java:64) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:455) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.26.jar!/:5.3.26] ... 71 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.micrometer.core.instrument.binder.system.ProcessorMetrics]: Factory method 'processorMetrics' threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support .SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.26.jar!/:5.3.26] at org.springframework.beans.factory.support .ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.26.jar!/:5.3.26] ... 93 common frames omitted Caused by: java.lang.NullPointerException: null at java.base/jdk.internal.platform.cgroupv2.CgroupV2Subsystem.getInstance(Unknown Source) ~[na:na] at java.base/jdk.internal.platform.CgroupSubsystemFactory.create(Unknown Source) ~[na:na] at java.base/jdk.internal.platform.CgroupMetrics.getInstance(Unknown Source) ~[na:na] at java.base/jdk.internal.platform.SystemMetrics.instance(Unknown Source) ~[na:na] at java.base/jdk.internal.platform.Metrics.systemMetrics(Unknown Source) ~[na:na] at java.base/jdk.internal.platform.Container.metrics(Unknown Source) ~[na:na] at jdk.management/com.sun.management.internal.OperatingSystemImpl.<init>(Unknown Source) ~[na:na] at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl.getOperatingSystemMXBean(Unknown Source) ~[na:na] at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl$3.nameToMBeanMap(Unknown Source) ~[na:na] at java.management/sun.management.spi.PlatformMBeanProvider$PlatformComponent.getMBeans(Unknown Source) ~[na:na] at java.management/java.lang.management.ManagementFactory.getPlatformMXBean(Unknown Source) ~[na:na] at java.management/java.lang.management.ManagementFactory.getOperatingSystemMXBean(Unknown Source) ~[na:na] at io.micrometer.core.instrument.binder.system.ProcessorMetrics.<init>(ProcessorMetrics.java:81) ~[micrometer-core-1.9.9.jar!/:1.9.9] at io.micrometer.core.instrument.binder.system.ProcessorMetrics.<init>(ProcessorMetrics.java:76) ~[micrometer-core-1.9.9.jar!/:1.9.9] at org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration.processorMetrics(SystemMetricsAutoConfiguration.java:59) ~[spring-boot-actuator-autoconfigure-2.7.10.jar!/:2.7.10] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na] at org.springframework.beans.factory.support .SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.26.jar!/:5.3.26] ... 94 common frames omitted docker logs -f leafy 했을 때 이렇게 나와요.. 커뮤니티에 나와있는대로 삭제했다가 다시 깔아봤고, name을 잘못적었는지도 확인해보았는데 전혀 잘못된게 없었습니다. leafy-postgres도 'Leafy 애플리케이션 구성' 강의에서 말씀하신것처럼 정상작동하는 것도 확인했습니다. docker inspect leafy-postgres | grep -A 2 "Networks" 를 치면 "Networks": { "leafy-network": { "IPAMConfig": null, 이렇게 나오고 있습니다. 어떻게 해야할까요 빠른답변 부탁드리겠습니다.
안녕하세요. 강의 잘 듣고 있습니다. docker run -e MYSQL_ROOT_PASSWORD=test123 -d -p 3306:3306 -v /own/dir:/var/lib/mysql mysql 명령어를 통해 1차적으로 도커 볼륨을 이용해 컨테이너를 생성한 후에, 해당 컨테이너를 삭제하였습니다. (dir 폴더는 따로 생성하지 않았고, 컨테이너 생성 시 명령어를 통해 생성되게끔 하였습니다) 이후 같은 명령어로 컨테이너를 생성하게 되면, 해당 폴더가 호스트 컴퓨터에 존재하므로 해당 호스트 컴퓨터 폴더 안의 파일들이 컨테이너 안의 /var/lib/mysql/ 안에 덮어씌워지게 되기 때문에 서로 공유가 가능한 것. 제가 이해한 게 맞는지 확인 부탁드립니다!
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pwd1234 -v /mnt/c/Users/jsill/Desktop/docker-mysql/mysq l_data:/var/lib/mysql mysql 위와 같이 docker 를 실행하면 처음엔 실행이 잘되다가 10초 정도 이후에 실행이 종료됩니다. log를 조회해도 매번 다른 오류가 발생합니다. mysqld: Table 'mysql.plugin' doesn't exist Could not open the mysql.plugin table. Please perform the MySQL upgrade procedure. OS는 윈도우 사용중입니다.
TOPIC1. 레이어 관리에서 RUN 지시어 사용 시 && 연산자를 사용하여 레이어의 개수를 5개에서 1개로 줄이고 있는데요. 이미지의 사이즈를 줄이고 빌드 속도를 높이기 위함. 이라고 말씀을 해주셨습니다. 먼저, 질문은 2가지입니다. 레이어의 사이즈가 동일한데, 어떤 관점으로 이미지의 사이즈가 축소되는 것인가? 레이어의 재활용성에 대해서 어떻게 생각하시는지? 레이어의 사이즈를 봤을 때 5개, 1개의 사이즈가 116MB로 동일하니 이미지의 사이즈는 동일한 것으로 보입니다. 1개의 레이어는 5개의 레이어를 별도로 불러와서 빌드하지는 않으니 속도가 빨라질 수는 있을 것 같다는 생각이 들어서 빌드의 속도는 빨라지나 이미지의 사이즈가 줄어든다. 라는 부분이 이해가 되지 않았습니다. 흔한 케이스는 아닐 것 같으나, 5개의 레이어를 분리를 하게 되면 레이어를 재사용 할 수 있는 장점이 있을 것 같다는 생각이 들었습니다. 마치, 깃을 다룰 때 한 개의 커밋에 하나의 기능만 포함하도록 한 느낌처럼요. 적절하게 레이어를 분리하는 시점을 찾는 것이 중요한 것으로 얘기를 해주신걸까? 하는 생각을 해봤습니다.
안녕하세요, 강의 6-3을 듣다가 막히는 부분이 있어 질문드립니다. postgres container를 잘 실행하고 백엔드 컨테이너를 docker run -d -p 80:80 --network leafy-network --name leafy-front devwikirepo/leafy-frontend:1.0.0 명령어를 통해 실행하였습니다. 그런데 이후에 log를 보면 아래와 같은 문구들이 나오면서, 에러가 발생했다고 나옵니다. (글씨가 너무 작아서, 에러 부분은 아래와 같습니다) 2025-02-28 12:36:54.708 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 526 ms 2025-02-28 12:36:54.731 ERROR 1 --- [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webMvcMetricsFilter' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]: Unsatisfied dependency expressed through method 'webMvcMetricsFilter' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'simpleMeterRegistry' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processorMetrics' defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.micrometer.core.instrument.binder.system.ProcessorMetrics]: Factory method 'processorMetrics' threw exception; nested exception is java.lang.NullPointerException 2025-02-28 12:36:54.740 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-02-28 12:36:54.743 WARN 1 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 2025-02-28 12:36:54.749 INFO 1 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2025-02-28 12:36:54.757 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed docker ps -a를 해보면 아래와 같이 로그가 나옵니다. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES df36a2b0896f devwikirepo/leafy-backend:1.0.0 "java -jar leafy.jar" 52 seconds ago Exited (1) 50 seconds ago leafy 9e9ee5a82c36 devwikirepo/leafy-postgres:1.0.0 "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 5432/tcp leafy-postgres\ 혹시 어떤 오류이고, 어떻게 해결하면 좋을까요? 감사합니다.
안녕하세요 강의 잘 듣고 있습니다 감사합니다 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=test123 -d mysql 이렇게 컨테이너를 실행한 후, datagrip을 통해서 url: jdbc:mysql://localhost:3306 로 정상 접속되는 것 확인했습니다. 하지만, docker run -p 3306:8888 -e MYSQL_ROOT_PASSWORD=test123 -d mysql 이렇게 실행하고 동일한 database url로 접속 시도하면 되질 않습니다. 3306으로 접속 시도하면 컨테이너 내부의 8888 mysql port와 매핑되어 있기 때문에 접속이 되어야하지 않나요? 호스트, 컨테이너 포트를 동일하게 설정해야만 컨테이너 내부 mysql db에 접속이 가능한 이유가 잘 이해되지 않습니다. 답변 부탁드립니다!
도커 컴포즈를 배우면서 여러개의 컨테이너를 띄우고 spring에서 특정 db를 가리켜서 사용할 수 있는걸 이해했는데 이걸 ci&cd 배포를 추가한다고 치면 문제가 발생합니다. 제가 이해하기로는 docker compose는 build 부분에 도커파일을 넣게 되어 있는데 근데 이러면 ci&cd 할 때 스크립트 순서가 java 설치 -> checkout -> 빌드 -> jar파일, 도커 파일, 도커 컴포즈 파일 scp를 활용해 전달 -> ssh로 접근해서 도커 컴포즈 실행 이렇게 사용하면 이미지를 넣어두고 다른데서도 사용할 수 있어야 하는 그런 장점이 없어진다고 생각하는데 이걸 어떻게 배포를 해야 하는건가요? 제가 생각한 도커, 컴포즈 파일, jar 파일을 전달하고 해당 ec2에서 docker compose를 해야하는건가요??
공부를 하다가 궁금해진건데 예를 들어서 MYSQL을 사용하면 3306 포트를 호스트에 노출 시켜서 run하는 시점에 docker run -p 3306:3306 이렇게 매핑을 한다 쳤을 때 컨테이너 내부의 3306은 어떤 기준으로 열리게 된건지가 궁금합니다. 처음에는 프로그램마다 다를거라고 생각을 했습니다. MYSQL은 3306 포트를 열게하는 설정이 있다. 그리고 자바로 치면 application.yml을 보고 server.port을 참고하여 포트를 열어버린다? 근데 이렇게 생각하니까 외부 프로그램이 포트를 연다라는 발상을 하게 되는데 좀 이상한 것 같습니다. 또한 어떤 기준으로 포트가 열리는지 궁금합니다.
gradlew build 이후 compose up 했을 때 mysql만 올라오고 spring boot서버는 안올라오는 상황입니다. gui db로 접속하려고 하니 밑의 그림과 같이 뜹니다. 제가 직접 컨테이너에 접근하여 접속한 결과 다음과 같이 똑같은 id,pw로 로그인이 되는데 왜 gui환경에서만 로그인이 안되는 걸까요? root계정으로 접속 후 저 계정에 대한 비밀번호를 변경해보았습니다. root계정 접속 후 저 계정에 대한 모든 권한을 부여하였습니다. 차이점 application.yml파일에서 username: root로 실행하면 스프링부트도 잘 올라오는데 username:xoxoxmin1268 이런식으로 제 아이디를 넣으면 다음과 같은 로그 뜹니다.