首页 > 解决方案 > 找不到指定的 Dockerfile:上下文/Dockerfile - Pipeline Bitbucket

问题描述

我正在尝试为我的 React 项目设置一个 bitbucket 管道。为此,我创建了一个 docker-compose 文件和一个 Dockerfile。

这是我的管道文件:

  branches:
    develop:
      - step:
          name: Dockerize
          script:
            - docker login $DOCKER_REGISTRY -u $DOCKER_REGISTRY_LOGIN -p $DOCKER_REGISTRY_PWD
            - docker build -f context/Dockerfile -t $DOCKER_IMAGE_NAME --build-arg BASE_API_URL=$API_DEV_URL .
            - docker tag $DOCKER_IMAGE_NAME $DOCKER_REGISTRY/$DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT
            - docker push $DOCKER_REGISTRY/$DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT
          services:
            - docker
          caches:
            - docker
      - step:
          name: Deploy to dev
          deployment: dev
          script:
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER rm -Rf $DOCKER_COMPOSE_DEV_PATH/*
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER mkdir $DOCKER_COMPOSE_DEV_PATH/log
            - scp -P $SERVER_PORT docker-compose.yml $SERVER_USER@$SERVER:$DOCKER_COMPOSE_DEV_PATH/
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER docker pull $DOCKER_REGISTRY/$DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER docker tag $DOCKER_REGISTRY/$DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT $DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER docker rmi $DOCKER_REGISTRY/$DOCKER_IMAGE_NAME:$BITBUCKET_COMMIT
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER TAG=$BITBUCKET_COMMIT docker-compose -p container-name -f $DOCKER_COMPOSE_DEV_PATH/docker-compose.yml down
            - ssh -p $SERVER_PORT $SERVER_USER@$SERVER TAG=$BITBUCKET_COMMIT docker-compose -p container-name -f $DOCKER_COMPOSE_DEV_PATH/docker-compose.yml up -d

options:
  docker: true

这是我的 docker-compose 文件

version: '3'

services:
  image_name:
    image: repo/image_name:${TAG}
    build:
      context: .
      dockerfile: context/Dockerfile
      args:
        - BASE_API_URL=${BASE_API_URL}
    volumes:
      - ./log:/var/log/nginx/

我的文件树如下

-app
|_ bitbucket-pipeline.yml
|_ docker-compose.yml
|_ context
  |_ Dockerfile

从我阅读的内容来看,我没有看到我的 docker-compose 文件存在问题。我的上下文和 dockerfile 参考应该可以工作。但我最终Cannot locate specified Dockerfile: context/Dockerfile在管道的最后一步出错(即运行 docker-compose up 命令时)

我不知道我应该改变什么才能让它工作。

标签: dockerdocker-composedockerfilebitbucket-pipelines

解决方案


尝试这个:

docker build -f context/Dockerfile -t $DOCKER_IMAGE_NAME --build-arg BASE_API_URL=$API_DEV_URL ./context

推荐阅读