Использование зависимостей кеширования узлов из битбакета, когда сборка docker запускает Dockerfile - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь использовать пользовательские зависимости кеша из битбакета, используя Dockerfile.

Это мой bitbucket-pipelines.yml:

hml:
            - step:
                caches:
                    - node-cache
                name: Tests and build
                services:
                    - docker
                volumes:
                    - "$BITBUCKET_CLONE_DIR/node_modules:/root/node_modules"
                    - "$BITBUCKET_CLONE_DIR:/code"
                script:
                    # - apt update
                    # - apt-get install -y curl
                    # - curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
                    # - chmod +x /usr/local/bin/docker-compose
                    # - echo 'DIALOGFLOW_PROJECT_ID=a' > .env
                    # - docker-compose up -d
                    # - docker exec api npm run test
                    - docker image inspect $(docker image ls -aq) --format {{.Size}} | awk '{totalSizeInBytes += $0} END {print totalSizeInBytes}'
                    - echo $BITBUCKET_CLONE_DIR/node_modules
                    - docker build -t cloudia/api .
                    - docker save --output api.docker cloudia/api
                artifacts:
                    - api.docker
            - step:
                name: Deploy
                services:
                    - docker
                deployment: staging
                script:
                    - apt-get update
                    - apt-get install -y curl unzip python jq
                    - curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
                    - mv awscli-bundle.zip /tmp/awscli-bundle.zip
                    - unzip /tmp/awscli-bundle.zip -d /tmp
                    - /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
                    - docker load --input ./api.docker
                    - chmod +x ./deploy_hml.sh
                    - ./deploy_hml.sh
definitions:
  caches:
    node-cache: node_modules
  services:
    docker:
      memory: 2048

А вот мой Dockerfile:

FROM node:10.15.3

WORKDIR /code
# Using some comments for tests
COPY [ "package*.json", "/code/" ]
RUN npm install --silent

COPY . /code
RUN npm run build

EXPOSE 5000

CMD npm start

Мой конвейер работает без проблем, но кеш не работает.

Сообщение, полученное при попытке запустить конвейер:

Cache "node-cache": Downloading
Cache "node-cache": Not found

Как я могу настроить конвейер, когда docker сборка запускает файл Dockerfile?

...