2
Gitlab CI를 설정하여 도커 이미지를 만들고 Gitlab 레지스트리로 푸는 데 문제가 있습니다. Gitlab에서 제공하는 공유 러너를 사용하려고합니다. 빌드가 실패 어떤 '고정 표시기'명령을 도달 내가 읽은 바로는,이이 메시지와 함께 즉시, 그러나, 아무리 내가 무엇을하려고 할 수 없어야한다 :gitlab ci 공유 러너로 도커 이미지 만들기
$ docker build --pull -t $CONTAINER_TEST_IMAGE .
/bin/bash: line 54: docker: command not found
내가 사용하고 다음을 CI 구성 :
image: "ruby:2.3"
services:
- docker:dind
- postgres:latest
variables:
POSTGRES_DB: test-db
CONTAINER_TEST_IMAGE: registry.gitlab.com/pha3l/gitlab-ci-test-project:$CI_BUILD_REF_NAME
CONTAINER_RELEASE_IMAGE: registry.gitlab.com/pha3l/gitlab-ci-test-project:latest
cache:
paths:
- vendor/ruby
stages:
- build
- test
- release
- deploy
before_script:
- ruby -v
- gem install bundler --no-ri --no-rdoc
- bundle install -j $(nproc) --path vendor
rubocop:
script:
- rubocop
rails:
variables:
DATABASE_URL: "postgresql://postgres:[email protected]:5432/$POSTGRES_DB"
script:
- bundle exec rake db:migrate
- bundle exec rake db:seed
- bundle exec rake test
build:
stage: build
script:
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
release-image:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
deploy:
stage: deploy
script:
- echo 'Do the deploy!'
only:
- master
고맙습니다. 첫 번째 단계에서는 루비 환경이 필요하지 않지만 생성하는 컨테이너에서만 루비 환경이 필요 없다는 사실을 알게되었습니다. 나는 도커를 사용하여이 문제를 해결했다 : git 이미지를베이스로 만들고 생성 한 컨테이너에 대한 Dockerfile을 작성했다. – lmerry213