докером в gitlab-runner?
                  
                  
                  Хотелось бы немного ускорить джобу, так как сейчас занимает почти полторы минуты, в основном из-за этого сервиса
                  
                  
                  build-docker:
                  
                  
                    stage: Build
                  
                  
                    image: docker:latest
                  
                  
                    services:
                  
                  
                      - name: docker:dind
                  
                  
                    variables:
                  
                  
                      DOCKER_TLS_CERTDIR: ""
                  
                  
                    script:
                  
                  
                      - export DOCKER_HOST=tcp://docker:2375
                  
                  
                      - echo $REGISTRY_PASSWORD | docker login -u $REGISTRY_USER --password-stdin
                  
                  
                
Можно кэширование использовать)
 Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Типа того или можно как-то именно образ docker:dind закешировать? cache: - key: cache-$CI_COMMIT_REF_SLUG paths: - /var/lib/docker
Сперва пуллим результат прошлого билда, билдим, пушим в реджистри гитлаба и в целевой реджистри variables: GITLAB_IMAGE_TAG_BASE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG ECR_DOCKER_IMAGE_NAME: $ECR_PREFIX/$ECR_POSTFIX:$CI_COMMIT_SHORT_SHA GITLAB_BUILDER_IMAGE_TAG: $GITLAB_IMAGE_TAG_BASE-builder GITLAB_RUNNER_IMAGE_TAG: $GITLAB_IMAGE_TAG_BASE-runner script: - echo "Authorize in Gitlab Container Registry" - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - echo "Pulling $GITLAB_BUILDER_IMAGE_TAG from Gitlab Container Registry" - docker pull $GITLAB_BUILDER_IMAGE_TAG - echo "Pulled $GITLAB_BUILDER_IMAGE_TAG from Gitlab Container Registry" - docker build --target builder --cache-from $GITLAB_BUILDER_IMAGE_TAG -t $GITLAB_BUILDER_IMAGE_TAG -f $DOCKERFILE_NAME . - docker push $GITLAB_BUILDER_IMAGE_TAG - echo "Pushed $GITLAB_BUILDER_IMAGE_TAG to Gitlab Container Registry" - docker build --target runner --cache-from $GITLAB_BUILDER_IMAGE_TAG -t $GITLAB_RUNNER_IMAGE_TAG -f $DOCKERFILE_NAME . - docker push $GITLAB_RUNNER_IMAGE_TAG - echo "Pushed $GITLAB_RUNNER_IMAGE_TAG to Gitlab Container Registry" - echo "Authorizing in AWS ECR" - cat config/docker_login | docker login --password-stdin --username AWS $ECR_PREFIX - echo "Tagging $GITLAB_RUNNER_IMAGE_TAG with $ECR_DOCKER_IMAGE_NAME tag" - docker tag $GITLAB_RUNNER_IMAGE_TAG $ECR_DOCKER_IMAGE_NAME - echo "Pushing $ECR_DOCKER_IMAGE_NAME to ECR Registry" - docker push $ECR_DOCKER_IMAGE_NAME - echo "Pushed $ECR_DOCKER_IMAGE_NAME to ECR Registry"
 Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Это стоит в отдельную джобу вынести? Используя docker команды без Docker in Docker получаю такую error: Post "http://docker:2375/v1.24/auth": dial tcp: lookup docker on 8.8.8.8:53: no such host
https://pastebin.com/GdpbGXGt Вот тебе целиком рабочая на шаред раннерах пипелина
 Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                   Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Simon
                          Kuzmichev
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Добавил к себе, теперь для всех джоб используется service docker:bind, который пуллится и кешируется в первой самой джобе Это не совсем то, что я хотел... Есть ли способ вообще избежать использование конструкции docker in docker и не использовать docker:bind вовсе?
Обсуждают сегодня