DevOps/Docker 8

[Error] Unable to access jarfile home/ubuntu/{jar파일명}.jar

sudo docker run -it -p 8080:8080 --name trendgaza_back openjdk:8-alpine java -jar home/ubuntu/{jar 파일명}.jar --spring.profiles.active=prod openjdk:8-alpine 이미지를 이용해서 trendgaza_back 이름으로 컨테이너를 생성해서 실행하려고 했다. jarfile에 접근할 수 없다는 에러(Unable to access jarfile home/ubuntu/{jar파일명}.jar)가 떴다. 해결 sudo docker run -it -p 8080:8080 --name trendgaza_back -v /home/ubuntu:/home/ubuntu openjdk:8-alpine java -jar ..

DevOps/Docker 2024.01.07

COPY ${JAR_FILE} app.jarWhen using COPY with more than one source file, the destination must be a directory and end with a /

COPY ${JAR_FILE} app.jarWhen using COPY with more than one source file, the destination must be a directory and end with a / 깃헙 액션의 CD 워크플로우를 실행하던 중에 다음과 같은 에러가 떴다. 하나 이상의 source 파일이 있을 시 destination이 {폴더명}/이 되어야 한다는 의미다. build/libs에는 jar 파일이 2개가 있었다. 내가 원하는 건 *-SNAPSHOT.jar뿐이다. FROM openjdk:11 ARG JAR_FILE=./build/libs/*-SNAPSHOT.jar COPY ${JAR_FILE} app.jar EXPOSE 8000 ENTRYPOINT ["java", "-ja..

DevOps/Docker 2023.05.05

[Error] docker endpoint for "default" not found

🖥️ 내 환경 운영 체제는 Window 11 Home Docker Desktop 버전은 4.16.3 Docker Compose 버전은 v2.15.1 docker-compose up 위 명령어를 사용하다가 docker endpoint for "default" not found가 뜨면서 안 된다. 이전에 잘 되었는데 Dockerfile을 이미지로 생성하려고 docker-compose에 코드를 작성한 후 이런 문제가 발생 해결 .docker\contexts\meta\{이상한 문자}의 경로에 meta.json 파일이 있는데 삭제한다. 다시 실행해보면 문제없이 잘 된다. 참고 👇 https://github.com/docker/compose/issues/9956 [BUG] docker endpoint for "de..

DevOps/Docker 2023.05.02

Docker

Docker open platform 애플리케이션을 인프라에서 분리 신속하다. 인프라를 애플리케이션을 관리하는 것 처럼 관리 코드를 배포에 용이 컨테이너 기반 가상화 도구 리눅스 컨테이너 기술인 LXC(Linux Containers) 기반 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 다양한 운영체제에서 사용할 수 있으며, 컨테이너화된 애플리케이션을 손쉽게 빌드, 배포, 관리할 수 있는 다양한 기능을 제공 Container 가상화 기술 중 하나 호스트 운영체제 위에 여러 개의 격리된 환경을 생성 각각의 컨테이너 안에서 애플리케이션을 실행 리눅스 커널의 기능을 사용하여 만들어짐 프로세스 단위의 격리 환경 가상화(Virtualization) 기술 하나의 물리적인 컴퓨터 자원(CPU, 메모..

DevOps/Docker 2023.04.19

Docker Compose

Compose file구성versionservices실행할 컨테이너들을 정의image컨테이너를 생성할 때 사용할 이미지build도커파일로부터 이미지를 빌드contextDockerfile이 있는 위치environment환경 변수 설정command컨테이너가 실행될 때 수행할 명령어depends_on명시된 컨테이너가 먼저 생성되고 실행ports개방할 포트 지정expose링크로 연계된 컨테이너에게만 공개할 포트 설정volumes컨테이너에 볼륨 마운트restart컨테이너가 종료될 때 재시작하는 방법no재시작 xalways항상 재시작on-failure오류가 있을 때 재시작networkvolumeconfigsecret  Compose file 예시version: '3'services: spring-boot: ..

DevOps/Docker 2022.05.05

Dockerfile

Dockerfile 예제 FROM openjdk:11 ARG JAR_FILE=./build/libs/*.jar COPY ${JAR_FILE} app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar","/app.jar"] FROM 도커 이미지에서 layer를 생성 ARG 변수 생성 COPY 도커 클라이언트의 현재 폴더에서 파일을 추가 EXPOSE 컨테이너가 연결을 수신하는 포트 지정 ENTRYPOINT 이미지의 주요 명령어 설정해서 명령어를 통해 이미지가 실행될 수 있게 한다. 위의 코드를 해석하면, openjdk:11 이미지를 가져온다. JAR_FILE 변수에 jar 파일을 넣는다. 해당 변수를 app.jar로 복사한다. 8080 포트를 연다. java -jar /app.jar..

DevOps/Docker 2022.04.25

Docker 실행 시 환경 변수 옵션 주기(feat. Jasypt)

1. Dockerfile 수정 ENTRYPOINT ["java","-jar","/app.jar"] 다음과 같은 에러가 발생 Dockerfile에서 위 부분을 아래와 같이 수정 ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app.jar"] 2. 빌드 docker build --build-arg JAR_FILE=build/libs/*.jar -t myorg/myapp . 저는 Gradle이고, Maven을 사용하면 build/libs를 target으로 치환하면 됩니다. 3. run docker run -p 8080:8080 -d -e JAVA_OPTS=-Djasypt.encryptor.password=yourpassword myorg/myapp -d는 백그라운드 실..

DevOps/Docker 2022.04.15