티스토리 뷰

기존에는 EC2에 shell runner를 띄워서 쓰다가 EC2에 메모리가 부족해서(t3.small) 빌드가 안되는 이슈가 생겼습니다. 그래서 빌드는 gitlab shared runner에서 하면 좋을 것 같아서 알아보는 중에 기록을 남깁니다.

 

shared-runner로 빌드하기

아래 shared-runner를 이용해 빌드 해볼 예정입니다.

아래 .ci.yml로 빌드 했습니다.

image: node:4.2.2

stages:  # List of stages for jobs, and their order of execution
  - install
  - build

install_dependencies:
  stage: install
  tags:
    - gitlab-org-docker
  script:
    # - echo "$DOCKER_REPO_HOST"
    - pwd
    - npm install

 

위 스크립트는 간단한 스크립트 입니다. node 4.2.2가 설치 되어 있는 docker image에서 npm install을 실행하겠다는 뜻 입니다.

하지만 위 스크립트는 실패 합니다. node버젼 때문입니다.

 

빌드가 될때까지 기다렸다가 결과를 확인 해보면 Fail입니다.

 

node의 버젼이 너무 낮은것이 문제인 것으로 보여서 다른 버젼으로 시도 했습니다.

node버젼 이슈

제가 빌드하려는 npm project를 성공했던 버젼을 확인 해보니 v14.17.3이었습니다.

image: node:14.17.3

stages:
  - install
  - build

install_dependencies:
  stage: install
  tags:
    - gitlab-org-docker
  script:
    # - echo "$DOCKER_REPO_HOST"
    - pwd
    - npm install

그래서 이미지 버젼을 14.17.3으로 바꾸고 빌드 했더니 npm install까지는 성공 했습니다.

 

 

Docker in Docker로 npm install 후에 Docker Build하기

위와 같이 하면 npm install까지는 잘 됩니다. 하지만 제 목표는 npm install한 후 docker build를 해서 image를 gitlab registry에 업로드 하는 것이었습니다.

 

 

https://stackoverflow.com/questions/69579315/gitlab-shared-runner-docker-build-after-npm-install

 

Gitlab Shared Runner docker build after npm install

I'm trying to build docker image and push to gitlab registry. I'm using gitlab-shared runner. There is no problems for npm install but how to build docker image on next job? image: node:14.17.3 st...

stackoverflow.com

 

image: docker:19.03.13

stages:
  - install
  - build

services:
  - docker:19.03.13-dind

install_dependencies:
  stage: install
  image: node:14.17.3
  tags:
    - gitlab-org-docker
  script:
    - pwd
    - npm install

build-job:
  stage: build
  tags:
    - gitlab-org-docker
  script:
    - echo "Compiling the code..."
    - echo "build"
    - docker build -t bmw-frontend-app .

 

dind로 Docker in Docker 를 써야 한다고 합니다. 그래서 적용 해보니 성공 했습니다.

 

걸리는 시간

시간이 3분 30초씩 걸립니다. shell executor를 쓸 때는 30초면 됐는데 docker build에서 2분정도 걸리는 것으로 보입니다. 로컬에서 위 이미지 빌드 할 때 2분 넘게 걸렸었습니다.

 

end

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함