2016-05-12 8 views
2

ここに私の.gitlab-ci.ymlスクリプトがあります。オンラインGitlabにJavaをインストールする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ページでスクリプトを実行してアンドロイドプロジェクトをコンパイルしようとしています。私はスクリプトにいくつかの変更を加えて、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。

Ruby用に表示されたサンプルと同じように、Javaをインストールしようとしましたが、動作しません。パッケージエラーを見つけることができません。

私はubuntuシステムのように見えるので、何がパッケージになるべきか分かりませんが、私のubuntuで動作するコマンドはここでは動作しません。

これはローカルインストールではありません。

+0

あなたは 'のapt-GET'をインストールするには、' sudo'を必要としないのですか?また、あなたのスクリプトは何をしていますか?それは '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部分にあります。 sudoをサポートしていないカスタムenvと思われるので、sudoで動作します。 – Jalpesh

+0

それでは、それはどこで実行を停止しますか? 'uname'は問題ありませんが' apt-get'はできません。 – fedorqui

答えて

1

と記載されているimage機能を使用できるはずです。 anapsix/alpine-java:jdk8 Dockerイメージで成功しました。

私はMockとOracle Javaが必要なので、独自のDockerイメージを使って独自のDocker gitlab-runnerを使用しています。 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"]