묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
안녕하세요 배포 관련 질문이 있습니다.
파이썬 백엔드 강의를 다 들은 상태인데요medelcontrollerviewstatictemplatesserver.py구조로 되어있을텐데요이를테면 spring에서 war로 만들어서 tomcat에서 실행시키잖아요그것처럼 flask도 이 강의 flask 부분을 따라하면 기존 강의의 위처럼 되어있는 구조(medelcontrollerviewstatictemplatesserver.py)에서 flask 식으로 빌드가 가능한건가요?아직 못 들어봐서 이전 강의 구조 그대로 이어서 배포가 가능한가 싶어서요spring 은 maven 생성하면 자동으로 properties 나 pom.xml 같은 구조가 기본적으로 갖춰지는데일반적으로 플라스크는 원래 프로젝트 폴더를 먼저 생성하고 빌드를 위한 구조를 갖추게 하는건가요?자세한 건 강의보고 따라 하겠지만.. 틀을 잘 모르겠습니다..---------------------------------------------------------조금 더 공부하고 찾아보았는데요1. 기존 구조에서 pip freeze > requirements.txt 를 하여 requirements.txt 파일이 프로젝트 폴더에 추가되게 한다.2. wsgi.py 파일을 추가해준다from server.py import appif name == "__main__":app.run()3. gunicon 을 사용하여 프로젝트를 돌려준다.혹시 이렇게 하는 것인가요?부족한 것이 있을까요 ?
-
미해결개발자를 위한 쉬운 도커
Docker 백앤드 컨테이너 실행시 오류
안녕하세요, 강의 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 ms2025-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.NullPointerException2025-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 Tomcat2025-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 NAMESdf36a2b0896f devwikirepo/leafy-backend:1.0.0 "java -jar leafy.jar" 52 seconds ago Exited (1) 50 seconds ago leafy9e9ee5a82c36 devwikirepo/leafy-postgres:1.0.0 "docker-entrypoint.s…" 27 minutes ago Up 27 minutes 5432/tcp leafy-postgres\ 혹시 어떤 오류이고, 어떻게 해결하면 좋을까요? 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
컨테이너 포트 설정 질문
안녕하세요 강의 잘 듣고 있습니다 감사합니다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에 접속이 가능한 이유가 잘 이해되지 않습니다.답변 부탁드립니다!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker compose ci&cd 질문
도커 컴포즈를 배우면서 여러개의 컨테이너를 띄우고 spring에서 특정 db를 가리켜서 사용할 수 있는걸 이해했는데 이걸 ci&cd 배포를 추가한다고 치면 문제가 발생합니다. 제가 이해하기로는 docker compose는 build 부분에 도커파일을 넣게 되어 있는데 근데 이러면 ci&cd 할 때 스크립트 순서가 java 설치 -> checkout -> 빌드 -> jar파일, 도커 파일, 도커 컴포즈 파일 scp를 활용해 전달 -> ssh로 접근해서 도커 컴포즈 실행이렇게 사용하면 이미지를 넣어두고 다른데서도 사용할 수 있어야 하는 그런 장점이 없어진다고 생각하는데 이걸 어떻게 배포를 해야 하는건가요? 제가 생각한 도커, 컴포즈 파일, jar 파일을 전달하고 해당 ec2에서 docker compose를 해야하는건가요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker compose 2개(mysql, spring boot)를 띄울시 동작을 안합니다.
도커 파일은 아래입니다.FROM openjdk:17-jdk COPY build/libs/*.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"]도커 컴포즈 파일 입니다.services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: 1234 MYSQL_DATABASE: mydb volumes: - /Users/shchoi/Downloads/docker/mysql:/var/lib/mysql ports: - 3306:3306 healthcheck: test: [ "CMD", "mysqladmin", "ping" ] interval: 5s retries: 10yml파일 입니다.spring: datasource: url: jdbc:mysql://my-db:3306/mydb username: root password: 1234 driver-class-name: com.mysql.cj.jdbc.Driver 이렇게 하고 실행시 db는 up이 되는데 spring은 다운 됩니다. 로그는 좀 길긴한데 아래와 같습니다.왜 안뜨는걸까요....;my-server-1 | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)my-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1812) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:346) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.3.jar!/:3.4.3]my-server-1 | at com.csh.springdemo.SpringDemoApplication.main(SpringDemoApplication.java:10) ~[!/:0.0.1-SNAPSHOT]my-server-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]my-server-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]my-server-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]my-server-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]my-server-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT]my-server-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT]my-server-1 | at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT]my-server-1 | Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:194) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1859) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808) ~[spring-beans-6.2.3.jar!/:6.2.3]my-server-1 | ... 22 common frames omittedmy-server-1 | Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)my-server-1 | at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:181) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:392) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.6.8.Final.jar!/:6.6.8.Final]my-server-1 | ... 37 common frames omittedmy-server-1 |
-
미해결대세는 쿠버네티스 [초급~중급]
node1의 서버에는 어떻게들어가나요?
node1이 worker인가요?>
-
해결됨실리콘밸리 엔지니어와 함께하는 Docker
저만 안 되는 것인가요? ㅠㅠ
동영상 강의에서 하신대로 my-first-docker 실행해서 docker run -p 5001:5000 my-first-docker를 실행하였습니다. 실행 되었다는 log를 보고, 영상에서와 같이 0.0.0.0:5001로 연결시도를 했는데, Address Invalid라고 나오네요..127.0.0.1:5001로 연결해 보니, "Welcome to the Docker Lecture App Thank you"가 나오네요..강의에서는 0.0.0.0으로 입력 되었는데.. 왜 전 안되는 걸까요?
-
미해결대세는 쿠버네티스 [초급~중급]
storageOs 설치중에 도저히 모르겠어서 질문 남깁니다 ㅠㅠ
kubectl apply -f https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yamlnamespace/storageos-operator unchangedclusterrole.rbac.authorization.k8s.io/storageos-operator configuredserviceaccount/storageoscluster-operator-sa unchangeddeployment.apps/storageos-cluster-operator unchangedresource mapping not found for name: "storageosclusters.storageos.com" namespace: "" from "https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"ensure CRDs are installed firstresource mapping not found for name: "storageosupgrades.storageos.com" namespace: "" from "https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"ensure CRDs are installed firstresource mapping not found for name: "jobs.storageos.com" namespace: "" from "https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"ensure CRDs are installed firstresource mapping not found for name: "nfsservers.storageos.com" namespace: "" from "https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"ensure CRDs are installed firstresource mapping not found for name: "storageoscluster-operator-rolebinding" namespace: "" from "https://github.com/storageos/cluster-operator/releases/download/1.5.0/storageos-operator.yaml": no matches for kind "ClusterRoleBinding" in version "rbac.authorization.k8s.io/v1beta1"ensure CRDs are installed first 해당 오류가 StoragesOs Operator 설치할떄부터 발생하는거같은데 원인이 뭘까요 kubectl get all -n storageos 이 명령어로 설치확인이 안되서 의심가는 부분이 여기라 질문드립니다.
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
Harbor 인증서 설정 후 IP 변경
안녕하세요,Harbor+Jenkins 실습 중 문의사항이 생겨 질문 남깁니다.Jenkins에서 Harbor로 푸시를 할 때 에러가 발생해 확인해보니 https 관련 에러가 나는 것 같았습니다. 확인해보니 Harbor를 설치하고 며칠 뒤 실습을 진행해 host pc의 ip가 변경되었고, 이로 인해 문제가 발생하고 있었습니다.이럴 경우, 매번 재설정을 해주는 것 외에 다른 해결법이 있을까요? 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
컨테이너 내부에서 사용하는 포트를 어떻게 지정하나요?
공부를 하다가 궁금해진건데 예를 들어서 MYSQL을 사용하면 3306 포트를 호스트에 노출 시켜서 run하는 시점에 docker run -p 3306:3306 이렇게 매핑을 한다 쳤을 때 컨테이너 내부의 3306은 어떤 기준으로 열리게 된건지가 궁금합니다. 처음에는 프로그램마다 다를거라고 생각을 했습니다. MYSQL은 3306 포트를 열게하는 설정이 있다. 그리고 자바로 치면 application.yml을 보고 server.port을 참고하여 포트를 열어버린다? 근데 이렇게 생각하니까 외부 프로그램이 포트를 연다라는 발상을 하게 되는데 좀 이상한 것 같습니다. 또한 어떤 기준으로 포트가 열리는지 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
테스트 코드 고의 실패 시 강사님 화면과 똑같이 안나옵니다.
무슨 말인고 하니 똑같이 고의로 테스트를 실패하게 만들었는데 강사님 화면은 어디에서 테스트가 실패했는지 CI/CD 화면에서 보여주는데 제 화면은 스샷과 같이 안나옵니다. 강사님 화면에서는 github actions에서 아래의 화면처럼 테스트 실패 이유가 뜨는데 저는 안 떠요! ===================================위의 사진은 저의 실제 코드 사진입니다. 제가 어디 잘못한게 있나요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
작동이 안되는데 제대로 된게 맞나요?
강사님과 같이 만들었습니다. 다만 제가 deploy.yml을 depoly.yml로 잘못 작성한거 빼고는 강사님과 같은데 설명에 .yml 앞의 이름은 상관 없다고 하셔서 큰 문제는 되지 않을거라고 생각합니다. 다만 사진과 같이 간단한 CI/CD 코드인데 2분이 넘도록 체크 표시가 안뜨는 문제가 있습니다. 제가 어떤 것을 잘못했을까요? 코드는 이렇게 작성했습니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
ec2 인스턴스에서 우분투 버전관련 문의입니다
현재 aws 프리티어에서 사용가능한 우분투 는 22.04인데 20.04가 아닌22.04로 진행해도 상관없나요 ?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
http => htrtps 호출 인증서 신뢰 오류
self-signed certificate in certificate chain 발생합니다.1번process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';2번// SSL 인증 무시를 위한 Agent 생성 const httpsAgent = new https.Agent({ rejectUnauthorized: false });await axios.get("target_url", { httpsAgent: agent });1,2 번 외 해결 방법이 있을까요?또는 2번을 적용하려면 어떻게 해야하나요? 또는 Java에서 로컬 톰캣 서버에서 HTTPS 설정하듯이 할수있는 방법이 있나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
self-signed certificate in certificate chain 에러 발생
안녕하세요.self-signed certificate in certificate chain에러 발생합니다,
-
해결됨개발자를 위한 쉬운 도커
COPY 경로에 관한 질문드립니다.
WORKDIR /app 으로 바꾸고 나서COPY ./ / 을 COPY . . 으로 변경하셨는데요WORKDIR 을 지정하게되면 컨테이너 작업디렉토리를 지정하게되지만 빌드컨텍스트 위치는 그대로이니 COPY ./ . 라고 생각했는데 제가 뭘 잘못생각하고 있는 걸까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
주피터 노트북 서버 만들어보기_pymysql 설치관련
안녕하세요.aws 의 용량부족이라 추가하고 mount 했고요.순서대로 주피터노트북 연결까지는 성공을 했습니다. 그런데 !pip install pymysql 이 실행이 안되서, 도커연결 cmd 창에서 실행하니, pip가 없다고 나와서, sudo apt install python3-pip 로 인스톨을 하니 리부팅을 하라고 해서 리부팅까지 하고,연결이 해제되고 docker ps 하니 실행되는게 없어서 다시 실행하고, 토큰 확인해서 다시 주피터 노트북연결해서 들어가고 나서 다시 !pip install pymysql을 실행하니까 안되네요. cmd 창에서 수행하니까, 에러가 나는데요, 확인해 보니 시스템이 관리하는 환경에서 직접적으로 패키지를 설치하려고 할 때 발생하는 거라, 이런 경우, Python 패키지를 설치하는 방법으로 가상 환경을 사용하거나 pipx를 사용하라고 하는데요. 혹시 강의 중간에 제가 놓친 부분이 있는 걸까요? 가상환경으로 구축을 따로 해야 하는건지..??
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Node.js에서도 쓸 수있나요?
안녕하세요. 강사님! 현재 AWS 강의를 잘 듣고 있는 학생입니다. 제가 Node.js / Nest.js를 주로 사용하고 있는데 강의 목록에 Nest에서 적용 할 수 있게 목록에 있더군요! 근데 Node에 대해서는 언급이 없는 것 같아서 Node에서도 적용 할 수 있게 해주는 내용이 강의에 있나요? 있다면 혹시 어느 목차에 있나요? 그리고 여러가지 언어에서 적용 할 수 있게끔 목록을 잘 나눠주셨더라고요! 혹시 필요한 부분만 듣고 나머지(ex_ 프론트 / 스프링 / etc..)들은 따로 안 들어도 제가 해당하는 부분만 들어도 적용과 이해에 무리가 없을까요?
-
미해결쿠버네티스 대신 도커 SWARM 사용 방법 핵심 강의
Docker Swarm과 Traefik을 활용한 MSA 아키텍처 설계 방식
안녕하세요.Docker Swarm 기반 마이크로서비스 아키텍처(MSA)를 구성 중입니다. 처음에는 Traefik을 이용해 모든 내부 마이크로서비스를 거치도록 (즉, serviceA가 serviceB를 호출할 때도 Traefik을 통해서만 통신) 운영하려고 했습니다. 그런데 그렇게 할 경우 아래와 같은 문제가 예상됩니다:성능/오버헤드모든 내부 트래픽이 Traefik을 중간에 두고 오가므로, 네트워크 홉이 추가됩니다.Keep-Alive 연결이 많아지고, Traefik이 병목이 될 가능성이 있음.복잡한 설정내부 수많은 서비스가 각각 Traefik의 라우터/서비스 규칙을 가져야 하므로 라벨 설정이 매우 복잡해질 수 있음.Path/Host 기반 라우팅 규칙도 내부 API 전부에 대해 관리해야 하므로 관리 부담 증가.인증/인가가 불필요한 내부 통신외부 노출이 전혀 필요 없는 내부 서비스 등까지도 Traefik을 거치는 것은 과도할 수 있음. 이러한 이유로, Traefik이 모든 트래픽을 일괄 처리하는 대신, 내부 통신은 Docker Swarm 로드밸런싱으로 처리하고, 외부 트래픽(HTTPS/도메인/인증서)은 Traefik에 맡기는 구조로 변경하려고 합니다. 구체적으로는,Docker Swarmservice 간에는 “user-service:8001” 식으로 연결 → Swarm 라운드 로빈Keep-Alive나 오토스케일 시 컨테이너가 늘어나면 Swarm이 자동 분산Traefik오직 외부 접근이 필요한 Gateway나 public API에 대해서만 라벨(traefik.enable=true) 적용HTTPS 인증서, Path/Host 라우팅, 미들웨어(인증/인가, IP 제한)를 외부 경계에서만 적용내부적으로는 Swarm에 맡기고, Traefik은 외부→Gateway(혹은 외부→공개 서비스)만 처리네트워크 분리“public-net”: Traefik, Gateway 등 외부 노출이 필요한 서비스“backend-net”: user-service 등 내부용 서비스만 존재, 외부와 직접 연결되지 않음궁금한 점위와 같은 구조(외부는 Traefik, 내부는 Swarm + 네트워크 분리)가 흔히 권장되는 방식인가요?내부 서비스까지 Traefik을 거치는 구조가 과연 득보다 실이 많을지, 실제 운영 사례가 궁금합니다. 보안 측면에서 “Traefik + Swarm ” 방식을 쓸 때 주의해야 할 점이나, 더 권장되는 패턴이 있으면 알려주세요!감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
localhost 관련
안녕하세요! 그러면 이전 영상대로 실습했을 때 docker compose ps 했을 때, 정상적으로 my-db와 my-server가 작동중인 경우는 잘못된건가요?
주간 인기글
순위 정보를
불러오고 있어요