2016-05-12 116 views
2

這是我的.gitlab-ci.yml腳本。在線安裝Java Gitlab ci

before_script: 
    - uname -a 
    - apt-get install default-jre default-jdk openjdk-7-jre openjdk-7-jdk 
    - java -version 
    - export MODE="service" 
    - export PID_FOLDER="/var/run/gitlab-runner-test" 

dev: 
    script: 
    - chmod +x gradlew 
    - ./gradlew assembleDebug 

我想在gitlab.com頁面上運行腳本來編譯一個android項目。我檢查了腳本的一些變化,發現ci上沒有安裝java linux Linux runner-8a2f473d-project-881036-concurrent-0 4.5.0-coreos-r1#2 SMP Thu May 5 07:27:26 UTC 2016 x86_64 GNU/Linux。

我嘗試安裝java,就像顯示爲ruby的示例,但它不起作用,並且出現無法找到程序包錯誤。

我不知道應該是什麼樣的包,因爲它看起來像一個Ubuntu系統,但在我的Ubuntu上運行的命令不起作用。

這不是本地安裝。

+0

你不需要'sudo'安裝用'的apt-GET'?另外,你的腳本是做什麼的?它執行'uname'部分嗎? – fedorqui

+0

是的,我得到的信息 linux Linux runner-8a2f473d-project-881036-concurrent-0 4.5.0-coreos-r1#2 SMP Thu May 5 07:27:26 UTC 2016 x86_64 GNU/Linux uname part。 它並沒有與sudo一起運行,因爲它似乎是一個沒有sudo支持的自定義env。 – Jalpesh

+0

那麼它在哪裏停止運行呢? 'uname'很好,但是'apt-get'沒有? – fedorqui

回答

1

我相信你應該可以使用image功能描述here。我發現anapsix/alpine-java:jdk8 Docker鏡像取得了成功。

我正在使用自己的Docker gitlab-runner和自定義Docker鏡像,因爲我需要使用Oracle java的Maven。如果gitlab.com上的共享運行者允許您使用自己的映像,我不是100%。

我Dockerfile爲(我上傳到Gitlab和使用他們的新泊塢容器寄存器功能)

FROM anapsix/alpine-java:jdk8 

ENV MAVEN_VERSION 3.3.3 

RUN apk update && apk upgrade && apk add curl wget bash tar rsync openssh-client 

RUN mkdir -p /usr/share/maven \ 
    && curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \ 
    | tar -xzC /usr/share/maven --strip-components=1 \ 
    && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn \ 
    && rm -rf /tmp/* /var/cache/apk/*; 

ENV MAVEN_HOME /usr/share/maven 

ENTRYPOINT [] 
CMD ["bash"]