क्या BitBucket में डॉकिंग-कम्पोज़ समर्थित नहीं है?


12

लक्ष्य

इसका उद्देश्य BitBucket पाइपलाइनों में docker-compose को चलाना है

प्रयास

bitbucket-pipelines.yml

image: docker/compose:1.12.0

pipelines:
  default:
    - step:
        script:
          - docker-compose up --build

परिणाम

The Docker Engine version is less than the minimum required by Compose.
Your current project requires a Docker Engine of version 1.13.0 or greater.

विचार-विमर्श

इस पोस्ट के अनुसार यह समर्थित नहीं है?

जवाबों:


10

यहाँ मेरा समाधान है: (bitbucket- पाइपलाइनों .yml)

pipelines:
  default:
    - step:
        script:
          - export DOCKER_COMPOSE_VERSION=1.18.0
          - export DOCKER_COMPOSE_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)
          - curl -L $DOCKER_COMPOSE_URL > docker-compose
          - chmod +x docker-compose
          - mv docker-compose /usr/local/bin
          - docker-compose build --force-rm --no-cache --pull

6

हम मूल docker- रचना एकीकरण के समर्थन को देखने की संभावना कम है क्योंकि पाइपलाइन API समान कार्यक्षमता का एक कस्टम कार्यान्वयन है, और इसलिए भी कि संभव सुरक्षा समस्याएँ, लेकिन ऐसा लगता है कि वर्तमान में अधिक docker-compose जैसी सुविधाओं को लागू करने के लिए अधिक सुविधाएँ वर्तमान में विकास में हैं यह खुला मुद्दा।

अद्यतन: बहु-कंटेनर पाइपलाइनों के लिए जोड़ा गया समर्थन, जैसा कि प्रलेखन में वर्णित है


3

मैं निम्न चित्र का उपयोग करके दूरस्थ होस्ट करने के लिए छवियों को पुश करने के लिए डॉक-कंपोज़ का उपयोग करने में कामयाब रहा।

tmaier / डोकर-लिखें: नवीनतम

यह बेसिक डॉकटर इमेज है जिसमें डॉकटर-कंपोज़ स्थापित है।

मेरा bitbucket-pipelines.ymlऐसा दिखता है:

- step:
    image: tmaier/docker-compose:latest
    script:
        - (umask  077 ; echo $DOCKER_PRIVATE_KEY | base64 -d > ./keys/key.pem)
        - export DOCKER_CERT_PATH=./keys/
        - export DOCKER_TLS_VERIFY="1"
        - export DOCKER_HOST=tcp://<DOCKER_HOST_IP>:2376
        - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
        - docker-compose up -d <service>

मैंने अपने रेपो में चेक-इन किया है ca.pemऔर निर्देशिका cert.pemमें डॉकटर-कंपोज़ द्वारा आवश्यक है keys। Bitbucket पाइपलाइन वातावरण चर में एक सुरक्षित चर के रूप में निजी कुंजी को base64encoded बचाया जाता है, इसलिए मैं इसे केवल डिकोड करता हूं और इसे keys/key.pemपहले चरण के रूप में पाइपलाइन में पेस्ट करता हूं ।

ध्यान रखें कि मैंने docker loginरिमोट होस्ट के लिए एनवायरमेंट वेरिएबल सेट करने के बाद उपयोग किया था ।


0

bitbucket-pipelines.yml

image: python:3.8.1

pipelines:
  branches:
    "**":
      - step:
          name: Build
          services:
            - docker
          caches:
            - docker
            - pip
          script:
            - pip install docker-compose
            - docker network create dockernet
            - docker-compose build

definitions:
  services:
    docker:
      memory: 2048
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.