2016-05-12 78 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"]