본문 바로가기

About

(219)
[Docker] Docker 컨테이너 내에서 cron job 실행하는 방법 Docker 컨테이너 내에서 cron job 실행하는 방법 이 글에서는 Docker 컨테이너 내에서 cron job을 실행하는 방법에 대해 알아보겠습니다. 방법 Docker 컨테이너 내에서 cron job을 실행하는 방법은 크게 두 가지로 나뉩니다. 1. Dockerfile에서 cron 설정하기 Dockerfile에 cron 설정을 추가하여 이미지를 빌드하는 방법입니다. 이 방법은 이미지를 빌드할 때 cron job을 설정하여, 컨테이너가 시작될 때 cron이 실행되도록 할 수 있습니다. 다음은 Dockerfile에서 cron 설정 예시입니다. 1 2 3 4 5 FROM ubuntu RUN apt-get update && apt-get install -y cron COPY cronfile /etc/cro..
[Docker] Docker 빌드 컨텍스트 외부 파일 포함 방법 Docker 빌드 컨텍스트 외부 파일 포함 방법 Docker 빌드 컨텍스트란? Docker는 컨테이너 기반 가상화 기술을 사용하는 소프트웨어입니다. Docker를 사용하면 이미지를 만들고 이를 기반으로 컨테이너를 실행할 수 있습니다. Docker 이미지는 Dockerfile이라는 파일에 정의된 내용에 따라 빌드됩니다. Dockerfile은 Docker 이미지를 빌드하기 위한 스크립트 파일입니다. 이 파일 안에는 Docker 이미지를 빌드하는 데 필요한 모든 명령어와 파일이 포함되어 있습니다. Dockerfile을 빌드할 때, Docker는 현재 디렉토리를 빌드 컨텍스트로 사용합니다. 빌드 컨텍스트란 Dockerfile을 빌드하기 위해 필요한 파일들이 위치한 디렉토리를 의미합니다. 하지만 때로는 Docke..
[Docker] 이미지를 깨끗하게 재빌드하는 방법 도커 이미지를 깨끗하게 재빌드하려면 다음과 같은 단계를 따르면 됩니다. 1. 컨테이너 및 이미지 삭제 우선 해당 이미지를 사용하는 모든 컨테이너를 중지하고 삭제해야합니다. 이는 다음 명령을 통해 수행할 수 있습니다. docker stop [container_name] docker rm [container_name] 이미지를 직접 삭제하려면 다음과 같이 입력합니다. docker rmi [image_name] 2. 캐시된 빌드 삭제 이전 빌드에서 캐시가 사용될 가능성이 있으므로 빌드 캐시를 삭제해야합니다. 다음 명령을 사용하여 모든 캐시를 삭제할 수 있습니다. docker builder prune 3. 새로운 이미지 빌드 모든 이전 이미지 및 캐시가 제거되었으므로 새 이미지를 빌드할 수 있습니다. 다음 명령..
[백준 18119] 단어 암기 (C) https://www.acmicpc.net/problem/18119 18119번: 단어 암기 준석이는 영어 단어를 외우려고 한다. 사전에는 N가지 단어가 적혀 있다. 모든 단어는 소문자이다. 단어 안에 있는 모든 알파벳을 알 때, 그 단어를 완전히 안다고 한다. 다음과 같은 쿼리들이 주 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #define MAX_N 10001 #define MAX_LEN 1001 int N, M; int arr[MAX_N] = { 0, }; int remember ..
[백준 2309] 일곱 난쟁이 (c++) https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 이 문제는 아홉 난쟁이들 중 7명을 뽑아(조합)하여 키의 합이 100인 경우를 찾는 문제입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #include #include #include using namespace..
[Terraform] for_each 문법 및 사용 예시(Meta Argument) 이전 포스팅에서 Terraform의 count 문법에 대하여 알아보았습니다. 2022.06.11 - [About/DevOps] - [Terraform] Meta-Agument - count 테라폼에서 여러 리소스를 한 번에 생성하는 방법으로는 count와 for_each가 있는데 이번 포스팅에서 for_each에 대하여 다루어 보도록 하겠습니다. 자세한 정보는 Terraform 공식 문서에서 확인할 수 있습니다. https://www.terraform.io/language/meta-arguments/for_each The for_each Meta-Argument - Configuration Language | Terraform by HashiCorp The for_each meta-argument al..
[k8s][Error] Arm-AMD CPU 사이 문제 해결 - 파드 생성 시 CrashLoopBackOff, exec user process caused: exec format error 문제 에러 상황 Docker를 이용해서 개발한 서비스를 컨테이너로 빌드하였고, 레포지토리에도 push하였습니다. 이 이미지를 이용해서 쿠버네티스로 Deployment를 배포하였고 계속해서 CrashLoopBackOff -> Error -> CrashLoopBackOff 가 반복되는 상황 파드의 로그를 확인해보면 다음과 같습니다. standard_init_linux.go:228: exec user process caused: exec format error exec format error? 보통은 Dockerfile의 ENTRYPOINT, CMD 가 잘못 선언되었거나, 실행할 스크립트의 권한이 없는 등 도커 이미지를 컨테이너로 실행할 때 잘못 설정해서 생기는 문제라고 합니다. 하지만 local에서 해당 이미지를..
[Terraform] count 문법 (Meta-Agument) Terraform을 사용하면서 여러 개의 리소스를 생성해야하는 경우가 있습니다. 예를 들어 3개의 IAM User를 생성해야하는 경우 다음과 같이 Terraform 코드를 작성할 수 있다. provider "aws" { region = "ap-northeast-2" } resource "aws_iam_user" "user_1" { name = "user-1" } resource "aws_iam_user" "user_2" { name = "user-2" } resource "aws_iam_user" "user_3" { name = "user-3" } 하지만 생성해야하는 리소스의 수가 100, 1000개 등으로 많아질 경우에 Terraform 코드가 너무 길어질 수 있으며 소스코드가 복잡해지고 수정이 어려워..
[Programmers] 거리두기 확인하기 (Python 풀이) https://programmers.co.kr/learn/courses/30/lessons/81302#fn1 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 이 문제는 거리가 'P' 사이의 맨해튼 거리가 2이하인 경우 파티션 여부를 확인하여..
[Programmers] 기능개발 (Python 풀이) https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 이 문제는 큐/스택을 적절히 활용하여 풀 수 있는 문제이며, 저는 풀이에서 collections의 deque(양방향 큐) 자료구조를 이용하여 풀이하였습니다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import math from collections import dequ..