Докер с BitBucket - PullRequest
       29

Докер с BitBucket

1 голос
/ 09 мая 2019

Я пытаюсь сделать автоматическую публикацию с использованием конвейеров docker + bitbucket; к сожалению у меня проблема. Я прочитал инструкции по развертыванию конвейеров в Docker Hub и создал следующий шаблон:

# This is a sample build configuration for Docker.
# Check our guides at https://confluence.atlassian.com/x/O1toN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: atlassian/default-image:2

pipelines:
  default:
    - step:
        services:
          - docker
        script: # Modify the commands below to build your repository.
          # Set $DOCKER_HUB_USERNAME and $DOCKER_HUB_PASSWORD as environment variables in repository settings
          - export IMAGE_NAME=paweltest/tester:$BITBUCKET_COMMIT

          # build the Docker image (this will use the Dockerfile in the root of the repo)
          - docker build -t paweltest/tester .
          # authenticate with the Docker Hub registry
          - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
          # push the new Docker image to the Docker registry
          - docker push paweltest/tester:tagname

Я выполнил данные, но после выполнения отправки я получаю следующую ошибку при запуске сборки:

невозможно подготовить контекст: lstat / opt / atlassian / pipelines / agent / build / Dockerfile: нет сухого файла или каталога

Чего бы я хотел достичь? После публикации изменений в репозитории я хотел бы, чтобы изображение автоматически создавалось и отправлялось в концентратор Docker, предпочтительно на целевой сервер, где находится приложение.

Я искал решение и пробовал разные комбинации. На данный момент у меня около 200 коммитов со статусом Failed, и у меня нет новых идей.

1 Ответ

2 голосов
/ 09 мая 2019

Конвейеры Bitbucket - это сервис CI / CD, вы можете создавать свои приложения и развертывать ресурсы на производственном или тестовом экземпляре сервера.Вы также можете создавать и развертывать образы Docker - это не должно быть проблемой, если вы не делаете что-то не так ...

Все определенные сценарии в файле bitbucket-pipelines.yml выполняются в контейнере, созданном из указанного изображения (atlassian/default-image:2 в вашем случае)

В вашем проекте должно быть Dockerfile, и из этого файла вы можете создать и опубликовать образ докера.

Я создал простой репозиторий без Dockerfile и начал сборку:

невозможно подготовить контекст: невозможно оценить символические ссылки в пути Dockerfile: lstat / opt / atlassian / pipelines / agent / build / Dockerfile: нет такого файла или каталога

Мне нужно Dockerfile в моем проекте для создания изображения (на том же уровне, что и файл bitbucket-pipelines.yml):

enter image description here

FROM node:latest

WORKDIR /src/
EXPOSE 4000

На следующем шаге я создал общедоступный репозиторий DockerHub:

enter image description here

Я также изменил ваш файл bitbucket-pipelines.yml ( вы забыли пометить новое изображениес тегом ):

image: atlassian/default-image:2

pipelines:
  default:
    - step:
        services:
          - docker
        script: 
          # build the Docker image (this will use the Dockerfile in the root of the repo)
          - docker build -t appngpl/stackoverflow-question-56065689 .
          # add new image tag
          - docker tag appngpl/stackoverflow-question-56065689 appngpl/stackoverflow-question-56065689:$BITBUCKET_COMMIT
          # authenticate with the Docker Hub registry
          - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
          # push the new Docker image to the Docker registry
          - docker push appngpl/stackoverflow-question-56065689:$BITBUCKET_COMMIT

Результат:

enter image description here enter image description here

Все отлично работает:)

Репозиторий Bitbucket: https://bitbucket.org/krzysztof-raciniewski/stackoverflow-question-56065689

GitHubхранилище изображений: https://hub.docker.com/r/appngpl/stackoverflow-question-56065689

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...