© 2020-present Sungjin Cho.
All Rights Reserved
github action을 테스트하기 위해서는 로컬에 docker 환경을 구축하여 yml파일에 있는 run을 순차적으로 실행해본다.
docker run -it --name github-actions-test ubuntu bash
apt-get update
apt-get install -y nodejs npm curl
npm install --global yarn
# nvm 설치 (nodejs 버전 관리)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 18
docker cp /User/chosungjin/project github-actions-test:/project
docker start -ai github-actions-test
docker ps -a # 모든 컨테이너 목록
docker logs github-actions-test # 컨테이너 로그
docker info
docker context use colima
docker context ls
docker context rm desktop-linux
docker ps # 실행중인 컨테이너 목록
docker ps -as # 모든 컨테이너 목록 with size
docker ps -as --no-trunc
docker search ubuntu # ubuntu 이미지 검색
docker build . -t my-image # my-image 라는 이름으로 이미지 빌드
docker build . -t my-image:1.0 # my-image 라는 이름으로 이미지 빌드 with tag
docker images # 이미지 목록
docker run --name my-image-container my-image:1.0 # my-image-container 컨테이너 실행
docker run -d --name my-image-container my-image:1.1 # my-image-container 컨테이너 detach 실행 (백그라운드)
docker inspect my-image # 이미지 정보
docker inspect --format={{.Config.Labels}} my-image # 이미지 레이블 정보
docker images --filter "label=name=gitty" # 레이블로 이미지 필터링
docker images --filter "label=name=gitty" --filter "label=version=v1.0"
docker image prune # dangling 이미지 삭제
docker rmi a74252dc7123 # 이미지 삭제
docker stop 1d0c64686c86 # 컨테이너 정지
docker rm 1d0c64686c86 # 컨테이너 삭제 (id로 삭제)
docker rm my-image-container # 컨테이너 삭제 (name으로 삭제)
docker run --name my-image-container-top my-image:1.1 # 컨테이너 실행
경량 가상화 도구로 Docker Desktop를 대체할 수 있다.
colima start --cpu 4 --memory 8
Cannot connect to the Docker daemon at unix:///Users/stefancho/.config/colima/default/docker.sock. Is the docker daemon running?
brew uninstall --cask docker --force
brew uninstall --formula docker --force
brew install --cask docker
# cmd + space로 Docker 검색해서 실행
# 이 시점부터 alert 안 뜸
---------------------
# 확인사살을 위해 한번더 제거 후 docker command만 재설치
brew uninstall --cask docker
brew install docker
sudo reboot
# alert 안뜸
# pnpm docker install: https://pnpm.io/docker
FROM node:22.13-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
RUN echo "pnpm version: " && pnpm -v
RUN npm install -g pm2 \
&& echo "pm2 version: " && pm2 -v
WORKDIR /app
COPY public ./public
COPY node_modules ./node_modules
COPY package.json ./package.json
COPY ecosystem.config.js ./ecosystem.config.js
COPY .next ./.next
EXPOSE 3000
## 정상실행 확인
# CMD ["pnpm", "start"]
## Docker에서 pm2 백그라운드 실행이 안됨
# CMD ["pm2", "start", "ecosystem.config.js"]
## pm2-runtime 사용시 정상실행 확인: https://pm2.keymetrics.io/docs/usage/docker-pm2-nodejs/
CMD ["pm2-runtime", "start", "ecosystem.config.js"]
docker desktop 대신에 colima를 사용하면 저장된 image 같은것들을 보려면 colima vm에 접속해서 확인할 수 있다.
> colima ssh # colima 접속하기
> sudo ls -l /var/lib/docker/image/overlay2/imagedb/content/sha256 # docker image의 해시값 결과가 나온다
# 위 결과를 tmp에 저장하고 colima ssh 를 exit 한다.
> docker images | awk 'NR==2 {print $3}' | xargs -I {} rg "{}" tmp
# 로컬의 docker에서 images 결과를 tmp에서 찾아보면 있는것을 확인할 수 있다.
# 28:-rw------- 1 root root 10380 Jan 21 17:49 4f182d13678405ec8f95adbbb724f000a9f1e35c4fba130933085ba694ff1518