2017-08-30 13 views
1

我在我的bitbucket-pipelines.yml文件中使用以下代碼將代碼遠程分發到臨時服務器。如何在BitBucket流水線上啓用/設置apt-get的依賴關係緩存

image: php:7.1.1 

pipelines: 
    default: 
    - step: 
     script: 
      # install ssh 
      - apt-get update && apt-get install -y openssh-client 
      # get the latest code 
      - ssh [email protected] -F ~/.ssh/config "cd /path/to/code && git pull" 
      # update composer 
      - ssh [email protected] -F ~/.ssh/config "cd /path/to/code && composer update --no-scripts" 
      # optimise files 
      - ssh [email protected] -F ~/.ssh/config "cd /path/to/code && php artisan optimize" 

這一切工作,除了每個管道運行時間,SSH客戶端下載並安裝了一切(加〜30秒的建造時間)。有辦法我可以緩存這一步嗎?

我該如何去緩存apt-get步驟?

例如,將這樣的工作(或需要什麼樣的變化,使下面的工作):

pipelines: 
    default: 
    - step: 
     caches: 
      - aptget 
     script: 
      - apt-get update && apt-get install -y openssh-client 

definitions: 
    caches: 
    aptget: which ssh 

回答

5

這是一個典型的場景,你應該使用自己的碼頭工人形象,而不是的一個由Atlassian提供的。 (。或尋找在碼頭工人的圖像,提供的正是這種)

在您簡單的情況下,這Dockerfile應該足夠:

FROM php:7.1.1 

RUN apt-get update && \ 
    apt-get install -y openssh-client 

然後,創建一個DockerHub帳戶,發佈圖像和bitbucket-pipelines.yml引用它。