diff --git a/README.md b/README.md index d5c2c7a6..f3629600 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,17 @@ The following instructions explain how to deploy a devspace on a Docker host. * Copy the SSH and Git configuration files used for fetching and pushing the Git repositories under `slave/.ssh` and `slave/.gitconfig`. This is usually your own SSH and Git configuration files. - + You need to use a public key without a passphrase and a `.gitconfig` file containing + the following sections: + ``` + [user] + name = YOUR_NAME + email = YOUR_EMAIL + [github] + token = YOUR_GITHUB_TOKEN + user = YOUR_GITHUB_NAME + ``` + * Run `rename.py` to match your topic name. Specify the Git user corresponding to the confguration files used above. If you do not yet have topic branches available on origin, use `develop` or one of the @@ -71,9 +81,13 @@ The following instructions explain how to deploy a devspace on a Docker host. Start and configure: +* Build devspace using `docker-compose`: + + $ docker-compose -f docker-compose.yml build + * Start devspace using `docker-compose`: - $ docker-compose up -d + $ docker-compose -f docker-compose.yml up -d By default, this will use the name of the directory as the project name. In the case of a shared Docker host, it is possible to override the project name using @@ -85,6 +99,10 @@ Start and configure: $ docker-compose -p my_project port nginxjenkins 443 +* Create the `maven-internal` Nexus repository: + + $ docker-compose exec nexus /nexus-data/createRepoMavenInternal.sh + * [Optional] Turn on Basic HTTP authentication for Jenkins sudo htpasswd -c jenkins/conf.d/passwdfile nginx @@ -94,10 +112,6 @@ Start and configure: auth_basic "Restricted"; auth_basic_user_file /etc/nginx/conf.d/passwdfile; -* [Optional] Create the `maven-internal` Nexus repository: - - $ docker-compose exec nexus /nexus-data/createRepoMavenInternal.sh - # GitHub OAuth @@ -118,6 +132,8 @@ After the script has completed you can either leave it in place so it will overr # Job configurations +* When running the OMERO-build job for the first time, select the ``PURGE_DATA`` option to create the database. + # Job workflow The default deployment initializes a Jenkins server with a [predefined set of diff --git a/docker-compose.yml b/docker-compose.yml index 5e1e4c37..0b759ee0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,7 +56,7 @@ services: networks: - omero-network volumes: - - ./server:/home/omero + - ./server:/home/omero-server environment: - SLAVE_NAME=omero - SLAVE_EXECUTORS=2 @@ -74,8 +74,8 @@ services: networks: - omero-network volumes: - - ./web:/home/omero - - ./nginx/conf.d:/home/omero/nginx + - ./web:/home/omero-web + - ./nginx/conf.d:/home/omero-web/nginx environment: - SLAVE_NAME=web - SLAVE_EXECUTORS=2 @@ -91,7 +91,7 @@ services: - omero-network volumes: - ./nginx/conf.d:/etc/nginx/conf.d - - ./web/static:/home/omero/static + - ./web/static:/home/omero-web/static - ./nginx/log:/var/log/nginx - ./nginx/sslcert:/etc/nginx/ssl environment: diff --git a/docker/Dockerfile b/docker/Dockerfile index bfedd9ed..6c88f972 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM openmicroscopy/devslave-c7:0.6.1 +FROM openmicroscopy/devslave-c7:0.7.2 MAINTAINER OME diff --git a/home/config.xml b/home/config.xml index 1bac5d92..7d868109 100644 --- a/home/config.xml +++ b/home/config.xml @@ -3,7 +3,7 @@ jenkins.security.s2m.MasterKillSwitchWarning - 2.150.3 + 2.319.2 RESTART 0 NORMAL @@ -29,8 +29,8 @@ - - jdk-8u192-oth-JPR + + jdk-8u221-oth-JPR true diff --git a/home/hudson.plugins.copyartifact.CopyArtifactConfigurat b/home/hudson.plugins.copyartifact.CopyArtifactConfigurat new file mode 100644 index 00000000..b0c6185c --- /dev/null +++ b/home/hudson.plugins.copyartifact.CopyArtifactConfigurat @@ -0,0 +1,4 @@ + + + PRODUCTION + \ No newline at end of file diff --git a/home/hudson.plugins.git.GitTool.xml b/home/hudson.plugins.git.GitTool.xml index 39ca57a7..382e1ecf 100644 --- a/home/hudson.plugins.git.GitTool.xml +++ b/home/hudson.plugins.git.GitTool.xml @@ -1,5 +1,5 @@ - + Default diff --git a/home/hudson.plugins.gradle.Gradle.xml b/home/hudson.plugins.gradle.Gradle.xml new file mode 100644 index 00000000..be99b58f --- /dev/null +++ b/home/hudson.plugins.gradle.Gradle.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/home/hudson.tasks.Ant.xml b/home/hudson.tasks.Ant.xml index 4fc57d49..434cd8a1 100644 --- a/home/hudson.tasks.Ant.xml +++ b/home/hudson.tasks.Ant.xml @@ -1,5 +1,5 @@ - + Ant 1.9 diff --git a/home/jobs/BIOFORMATS-build/config.xml b/home/jobs/BIOFORMATS-build/config.xml index 8674e397..b9c07e93 100644 --- a/home/jobs/BIOFORMATS-build/config.xml +++ b/home/jobs/BIOFORMATS-build/config.xml @@ -1,5 +1,5 @@ - + false @@ -22,7 +22,7 @@ - + 2 diff --git a/home/jobs/BIOFORMATS-push/config.xml b/home/jobs/BIOFORMATS-push/config.xml index 078f2edd..2794432b 100644 --- a/home/jobs/BIOFORMATS-push/config.xml +++ b/home/jobs/BIOFORMATS-push/config.xml @@ -32,7 +32,7 @@ - + 2 @@ -123,7 +123,7 @@ foreach-get-version-as-property > ${WORKSPACE}/target/version.properties - target/version.tsv + target/version.tsv, target/version.properties false false false diff --git a/home/jobs/OMERO-build/config.xml b/home/jobs/OMERO-build/config.xml index 088078e2..666ca3bc 100644 --- a/home/jobs/OMERO-build/config.xml +++ b/home/jobs/OMERO-build/config.xml @@ -57,14 +57,26 @@ false + + OMERO-python-superbuild-build + + + + + false + false + - cd src + +mv omero-scripts/dist/*.tar.gz . +cd src export OMERO_BRANCH=$MERGE_PUSH_BRANCH - + virtualenv $WORKSPACE/omero-virtualenv --system-site-packages + source $WORKSPACE/omero-virtualenv/bin/activate pip install https://github.com/ome/zeroc-ice-py-centos7/releases/download/0.2.1/zeroc_ice-3.6.5-cp36-cp36m-linux_x86_64.whl -pip install -U setuptools 'omero-py>=5.6.0.dev9' +pip install -U setuptools omero-py source docs/hudson/OMERO.sh diff --git a/home/jobs/OMERO-server/config.xml b/home/jobs/OMERO-server/config.xml index d25296af..345235a4 100644 --- a/home/jobs/OMERO-server/config.xml +++ b/home/jobs/OMERO-server/config.xml @@ -49,7 +49,7 @@ source $WORKSPACE/.venv3/bin/activate pip install https://github.com/ome/zeroc-ice-py-centos7/releases/download/0.2.1/zeroc_ice-3.6.5-cp36-cp36m-linux_x86_64.whl pip install -U pip future pip install markdown -pip install reportlab # For figure +pip install "reportlab<3.6" # For figure pip install omego pip install tables pip install jinja2 @@ -106,7 +106,6 @@ OMERO_DATA_DIR=$DATA_DIR mkdir -p $OMERO_DATA_DIR -# UNZIP SERVER OMERO_DIST=$WORKSPACE/OMERO.server export OMERODIR=$OMERO_DIST @@ -122,7 +121,6 @@ unzip $ZIP rm -f $ZIP mv $WORKSPACE/$DIST $OMERO_DIST -# INSTALL PYTHON PACKAGES source $WORKSPACE/.venv3/bin/activate pip install git+https://github.com/$SPACE_USER/omero-metadata.git@$MERGE_PUSH_BRANCH#egg=omero-metadata pip install git+https://github.com/$SPACE_USER/omero-cli-render.git@$MERGE_PUSH_BRANCH#egg=omero-cli-render @@ -132,12 +130,7 @@ for x in *.tar.gz; do pip install -U $x # Install marshal, etc. *after* requirements done -## LOAD CONFIG -# LOAD EXTRA CONFIG -#omero load configfile.omero - -# DEFAULT CONFIG omero config set omero.db.name $OMERO_DB_NAME omero config set omero.db.host $OMERO_DB_HOST omero config set omero.db.user $OMERO_DB_USER @@ -147,10 +140,6 @@ omero config set omero.db.poolsize 25 omero config set omero.security.trustStore /etc/pki/ca-trust/extracted/java/cacerts omero config set omero.security.trustStorePassword changeit omero certificates -## END LOAD CONFIG - - -## PURGE if [ "$PURGE_DATA" = "true" ]; then createdb -h $OMERO_DB_HOST -U $OMERO_DB_USER $OMERO_DB_NAME @@ -160,14 +149,11 @@ else omego db -vvv upgrade --serverdir $OMERO_DIST --dbname $OMERO_DB_NAME fi -## END PURGE - export LANG='en_US.UTF-8' export LANGUAGE='en_US:en' export LC_ALL='en_US.UTF-8' BUILD_ID=DONT_KILL_ME omero admin start -# WAIT FOR OMERO TO START UP AND ACCEPT CONNECTIONS omero admin waitup omero admin diagnostics diff --git a/home/org.jenkinsci.plugins.docker.commons.tools.DockerT b/home/org.jenkinsci.plugins.docker.commons.tools.DockerT new file mode 100644 index 00000000..e1801ee0 --- /dev/null +++ b/home/org.jenkinsci.plugins.docker.commons.tools.DockerT @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/home/org.jenkinsci.plugins.gitclient.JGitApacheTool.xml b/home/org.jenkinsci.plugins.gitclient.JGitApacheTool.xml new file mode 100644 index 00000000..757ecf27 --- /dev/null +++ b/home/org.jenkinsci.plugins.gitclient.JGitApacheTool.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/home/org.jenkinsci.plugins.gitclient.JGitTool.xml b/home/org.jenkinsci.plugins.gitclient.JGitTool.xml index e2da2895..bfbf820c 100644 --- a/home/org.jenkinsci.plugins.gitclient.JGitTool.xml +++ b/home/org.jenkinsci.plugins.gitclient.JGitTool.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/jenkins/Dockerfile b/jenkins/Dockerfile index dec089c5..f9fcf955 100644 --- a/jenkins/Dockerfile +++ b/jenkins/Dockerfile @@ -1,10 +1,11 @@ -FROM jenkins/jenkins:2.150.3 +FROM jenkins/jenkins:2.319.2-lts-jdk11 MAINTAINER OME # Temp fix robot test results -ENV JAVA_OPTS "-Dhudson.model.DirectoryBrowserSupport.CSP=" +ENV JAVA_OPTS "-Dhudson.model.DirectoryBrowserSupport.CSP=" -Djenkins.install.runSetupWizard=false COPY plugins.txt /usr/share/jenkins/ref/plugins.txt + RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt USER root diff --git a/jenkins/plugins.txt b/jenkins/plugins.txt index 58e3a64e..79509585 100644 --- a/jenkins/plugins.txt +++ b/jenkins/plugins.txt @@ -1,104 +1,103 @@ -swarm:3.15 -git:4.0.0-rc -git-client:3.0.0-rc -git-server:1.7 -mailer:1.23 -scm-api:2.3.0 -matrix-project:1.14 -ssh-credentials:1.14 -credentials:2.1.18 -script-security:1.54 -role-strategy:2.10 -matrix-auth:2.3 -icon-shim:2.0.3 -authentication-tokens:1.3 +swarm +git +git-client +git-server +mailer +scm-api: +matrix-project +ssh-credentials +credentials +script-security +role-strategy +matrix-auth +authentication-tokens +authorize-project -junit:1.27 -testng-plugin:1.15 +junit +testng-plugin -jdk-tool:1.2 -javadoc:1.5 +jdk-tool +javadoc -artifactory:3.2.1 -ant:1.9 -gradle:1.30 -ivy:1.28 -config-file-provider:3.5 +artifactory +ant +gradle +ivy +config-file-provider -copyartifact:1.42 +copyartifact -branch-api:2.1.2 -mapdb-api:1.0.9.0 -display-url-api:2.3.0 -structs:1.17 -conditional-buildstep:1.3.6 -run-condition:1.2 +branch-api +mapdb-api +display-url-api +structs +conditional-buildstep +run-condition # As a repository -repository:1.3 -maven-plugin:3.2 -apache-httpcomponents-client-4-api:4.5.5-3.0 -jsch:0.1.55 +repository +maven-plugin +apache-httpcomponents-client-4-api +jsch # Optional -parameterized-trigger:2.35.2 -subversion:2.12.1 -token-macro:2.7 -promoted-builds:3.2 -cloudbees-folder:6.7 +parameterized-trigger +subversion +token-macro +promoted-builds +cloudbees-folder # Workflow # See: https://github.com/jenkinsci/workflow-plugin/blob/master/demo/plugins.txt -durable-task:1.29 -ace-editor:1.1 -jquery-detached:1.2.1 -lockable-resources:2.4 -workflow-aggregator:2.6 -workflow-api:2.33 -workflow-basic-steps:2.14 -workflow-cps:2.64 -workflow-cps-global-lib:2.13 -workflow-durable-task-step:2.29 -workflow-job:2.31 -workflow-multibranch:2.21 -workflow-remote-loader:1.4 -workflow-scm-step:2.7 -workflow-step-api:2.19 -workflow-support:3.2 +durable-task +ace-editor +jquery-detached +lockable-resources +workflow-aggregator +workflow-api +workflow-basic-steps +workflow-cps +workflow-cps-global-lib +workflow-durable-task-step +workflow-job +workflow-multibranch +workflow-remote-loader +workflow-scm-step +workflow-step-api +workflow-support -pipeline-rest-api:2.10 -pipeline-stage-view:2.10 -pipeline-stage-step:2.3 -pipeline-build-step:2.7 -pipeline-input-step:2.9 -pipeline-milestone-step:1.3.1 -pipeline-graph-analysis:1.9 -pipeline-model-definition:1.3.6 -pipeline-model-api:1.3.6 -pipeline-model-declarative-agent:1.1.1 -pipeline-model-extensions:1.3.6 -pipeline-stage-tags-metadata:1.3.6 -jackson2-api:2.9.8 +pipeline-rest-api +pipeline-stage-view +pipeline-stage-step +pipeline-build-step +pipeline-input-step +pipeline-milestone-step +pipeline-graph-analysis +pipeline-model-definition +pipeline-model-api +pipeline-model-extensions +pipeline-stage-tags-metadata +jackson2-api -docker-workflow:1.17 -docker-commons:1.13 +docker-workflow +docker-commons -credentials-binding:1.18 -plain-credentials:1.5 -handlebars:1.1.1 -momentjs:1.1.1 +credentials-binding +plain-credentials +handlebars +momentjs # Robot -robot:1.6.5 +robot # Utils -greenballs:1.15 -timestamper:1.9 -jobConfigHistory:2.19 -rundeck:3.6.4 +greenballs +timestamper +jobConfigHistory +rundeck # ldap -ldap:1.20 +ldap # GitHub OAuth -github-oauth:0.32 \ No newline at end of file +github-oauth diff --git a/nginx/Dockerfile b/nginx/Dockerfile index e66c56c5..47594875 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -1,4 +1,4 @@ -FROM openmicroscopy/devslave-c7:0.6.1 +FROM openmicroscopy/devslave-c7:0.7.1 MAINTAINER OME diff --git a/server/Dockerfile b/server/Dockerfile index 8752e00b..6861fdbd 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,20 +1,28 @@ -FROM openmicroscopy/devslave-c7:0.6.1 +FROM openmicroscopy/devslave-c7:0.7.2 MAINTAINER OME ARG JAVAVER=openjdk1.8 ARG ICEVER=ice36 +ARG BRANCH=yourbranch +ARG NAME=yourname + +# Remove the existing omero user +RUN userdel -r omero && \ + rm -f /etc/sudoers.d/omero && \ + echo 'root:omero' | chpasswd # skip some omero-install RUN echo 'export container=docker' > /etc/profile.d/docker.sh ENV OMERO_INSTALL_ROOT=/tmp/omero-install + ## update omero-install to the latest one #RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.email "you@example.com" #RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.name "Your Name" -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT remote add username https://github.com/username/omero-install.git -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT fetch username -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT merge username/yourbranch +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT remote add $NAME https://github.com/$NAME/omero-install.git +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT fetch $NAME +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT merge $NAME/$BRANCH ADD ./settings.env $OMERO_INSTALL/settings.env @@ -31,9 +39,6 @@ RUN touch $OMERO_INSTALL/step03_all_postgres.sh # omeroweb will be installed by the job RUN rm -f $OMERO_INSTALL/step04_all_omero.sh RUN touch $OMERO_INSTALL/step04_all_omero.sh -# remove nginx -RUN rm -rf $OMERO_INSTALL/step05_centos7_nginx.sh -RUN touch $OMERO_INSTALL/step05_centos7_nginx.sh # no systemd RUN rm -rf $OMERO_INSTALL/step06_centos7_daemon.sh RUN touch $OMERO_INSTALL/step06_centos7_daemon.sh @@ -43,11 +48,9 @@ RUN touch $OMERO_INSTALL/requirements.txt WORKDIR /tmp/omero-install/linux -RUN JAVAVER=$JAVAVER ICEVER=$ICEVER PGVER=nopg bash install_centos7_nginx.sh +RUN JAVAVER=$JAVAVER ICEVER=$ICEVER PGVER=nopg bash install_centos7.sh # install postgres tools -RUN yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ - && yum clean all RUN yum -y install postgresql10 \ && yum clean all @@ -55,7 +58,7 @@ EXPOSE 4064 EXPOSE 4063 ADD ./run.sh /tmp/run.sh -RUN chown omero:omero /tmp/run.sh +RUN chown omero-server:omero-server /tmp/run.sh RUN chmod a+x /tmp/run.sh RUN yum install -y python36 @@ -76,10 +79,10 @@ ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' # Change user id to fix permissions issues ARG USER_ID=1000 -RUN usermod -u $USER_ID omero +RUN usermod -u $USER_ID omero-server # make sure mounted volumes has correct permissions -VOLUME ["/home/omero"] +VOLUME ["/home/omero-server"] -USER omero +USER omero-server CMD ["/tmp/run.sh"] diff --git a/server/run.sh b/server/run.sh index 7ad032c2..5c14e8dd 100644 --- a/server/run.sh +++ b/server/run.sh @@ -1,12 +1,12 @@ #!/bin/bash function shut_down() { - /home/omero/workspace/OMERO-server/OMERO.server/bin/omero admin stop + /home/omero-server/workspace/OMERO-server/OMERO.server/bin/omero admin stop } /tmp/jenkins-slave.sh & -/home/omero/workspace/OMERO-server/OMERO.server/bin/omero admin start -/home/omero/workspace/OMERO-server/OMERO.server/bin/omero admin diagnostics +/home/omero-server/workspace/OMERO-server/OMERO.server/bin/omero admin start +/home/omero-server/workspace/OMERO-server/OMERO.server/bin/omero admin diagnostics trap "shut_down" SIGKILL SIGTERM SIGHUP SIGINT EXIT diff --git a/slave/Dockerfile b/slave/Dockerfile index 0e912ea1..cab063c4 100644 --- a/slave/Dockerfile +++ b/slave/Dockerfile @@ -1,9 +1,12 @@ -FROM openmicroscopy/devslave-c7:0.6.1 +FROM openmicroscopy/devslave-c7:0.7.2 MAINTAINER OME ARG JAVAVER=openjdk1.8 ARG ICEVER=ice36-devel +ARG BRANCH=yourbranch +ARG NAME=yourname + # skip some omero-install RUN echo 'export container=docker' > /etc/profile.d/docker.sh @@ -12,9 +15,9 @@ ENV OMERO_INSTALL_ROOT=/tmp/omero-install ## update omero-install to the latest one #RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.email "you@example.com" #RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.name "Your Name" -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT remote add username https://github.com/username/omero-install.git -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT fetch username -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT merge username/yourbranch +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT remote add $NAME https://github.com/$NAME/omero-install.git +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT fetch $NAME +#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT merge $NAME/$BRANCH ADD ./settings.env $OMERO_INSTALL/settings.env @@ -31,9 +34,6 @@ RUN touch $OMERO_INSTALL/step03_all_postgres.sh # omeroweb will be installed by the job RUN rm -f $OMERO_INSTALL/step04_all_omero.sh RUN touch $OMERO_INSTALL/step04_all_omero.sh -# remove nginx -RUN rm -rf $OMERO_INSTALL/step05_centos7_nginx.sh -RUN touch $OMERO_INSTALL/step05_centos7_nginx.sh # no systemd RUN rm -rf $OMERO_INSTALL/step06_centos7_daemon.sh RUN touch $OMERO_INSTALL/step06_centos7_daemon.sh @@ -43,7 +43,7 @@ RUN touch $OMERO_INSTALL/requirements.txt WORKDIR /tmp/omero-install/linux -RUN JAVAVER=$JAVAVER ICEVER=$ICEVER PGVER=nopg bash install_centos7_nginx.sh +RUN JAVAVER=$JAVAVER ICEVER=$ICEVER PGVER=nopg bash install_centos7.sh # Install FindBugs ENV FINDBUGS_VERSION 3.0.0 @@ -57,9 +57,7 @@ RUN curl -fSLO http://downloads.sourceforge.net/project/findbugs/findbugs/$FINDB RUN yum -y install maven ant && yum clean all # install postgres tools -RUN yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ - && yum clean all -RUN yum -y install postgresql10 \ +RUN yum -y install postgresql10-server postgresql10 \ && yum clean all # gradle @@ -81,6 +79,7 @@ RUN chmod a+x /tmp/run.sh RUN yum install -y python36 RUN python3 -m venv /py3 && /py3/bin/pip install -U pip tox future wheel restructuredtext-lint RUN /py3/bin/pip install https://github.com/ome/zeroc-ice-py-centos7/releases/download/0.2.1/zeroc_ice-3.6.5-cp36-cp36m-linux_x86_64.whl +RUN ln -s /py3/bin/slice2py /usr/bin/slice2py ENV VIRTUAL_ENV=/py3 ENV PATH="$VIRTUAL_ENV/bin:$PATH" diff --git a/slave/run.sh b/slave/run.sh index bf0111e5..246019f5 100644 --- a/slave/run.sh +++ b/slave/run.sh @@ -1,12 +1,12 @@ #!/bin/bash function shut_down() { - /home/omero/workspace/OMERO-test-integration/src/dist/bin/omero admin stop + /home/omero-server/workspace/OMERO-test-integration/src/dist/bin/omero admin stop } /tmp/jenkins-slave.sh & -/home/omero/workspace/OMERO-test-integration/src/dist/bin/omero admin start -/home/omero/workspace/OMERO-test-integration/src/dist/bin/omero admin diagnostics +/home/omero-server/workspace/OMERO-test-integration/src/dist/bin/omero admin start +/home/omero-server/workspace/OMERO-test-integration/src/dist/bin/omero admin diagnostics trap "shut_down" SIGKILL SIGTERM SIGHUP SIGINT EXIT diff --git a/web/Dockerfile b/web/Dockerfile index 2b3fea10..1df0c372 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,4 +1,4 @@ -FROM openmicroscopy/devslave-c7:0.6.1 +FROM openmicroscopy/devslave-c7:0.7.2 MAINTAINER OME @@ -8,46 +8,26 @@ ARG ICEVER=noice # make ICEVERSION environment variable to use in OMERO-web job ENV ICEVERSION ${ICEVER:-noice} + +# Remove the existing omero user +RUN userdel -r omero && \ + rm -f /etc/sudoers.d/omero && \ + echo 'root:omero' | chpasswd + +# Create the omero-web user +RUN useradd omero-web && \ + echo 'omero-web:omero-web' | chpasswd && \ + echo "omero-web ALL= (ALL) NOPASSWD: ALL" >> /etc/sudoers.d/omero-web + + # skip some omero-install RUN echo 'export container=docker' > /etc/profile.d/docker.sh ENV OMERO_INSTALL_ROOT=/tmp/omero-install -## update omero-install to the latest one -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.email "you@example.com" -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT config --global user.name "Your Name" -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT remote add username https://github.com/username/omero-install.git -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT fetch username -#RUN git --git-dir=$OMERO_INSTALL_ROOT/.git --work-tree=$OMERO_INSTALL_ROOT merge username/yourbranch - ADD ./settings.env $OMERO_INSTALL/settings.env RUN chmod +x $OMERO_INSTALL/settings.env -# Customize: run particular scripts from omero-install -RUN rm -f $OMERO_INSTALL/setup_centos_selinux.sh -RUN touch $OMERO_INSTALL/setup_centos_selinux.sh -RUN rm -f $OMERO_INSTALL/setup_omero_db.sh -RUN touch $OMERO_INSTALL/setup_omero_db.sh -# do not create user -RUN rm -f $OMERO_INSTALL/step02_all_setup.sh -RUN touch $OMERO_INSTALL/step02_all_setup.sh -# omeroweb will be isntalled by the job -RUN rm -f $OMERO_INSTALL/step04_all_omero.sh -RUN touch $OMERO_INSTALL/step04_all_omero.sh -# remove nginx -RUN mv $OMERO_INSTALL/step05_centos7_nginx.sh $OMERO_INSTALL/_step05_centos7_nginx.sh -RUN touch $OMERO_INSTALL/step05_centos7_nginx.sh -# no systemd -RUN rm -rf $OMERO_INSTALL/step06_centos7_daemon.sh -RUN touch $OMERO_INSTALL/step06_centos7_daemon.sh -# no Pillow -RUN rm -rf $OMERO_INSTALL/requirements.txt -RUN touch $OMERO_INSTALL/requirements.txt - -WORKDIR /tmp/omero-install/linux - -RUN JAVAVER=$JAVAVER ICEVER=$ICEVER PGVER=nopg bash install_centos7_nginx.sh - # manually install ICEPY dependences RUN yum -y install gcc-c++ # ant for iviewer, make for nodejs @@ -63,7 +43,7 @@ RUN yum install -y python-redis && yum clean all EXPOSE 4080 ADD ./run.sh /tmp/run.sh -RUN chown omero:omero /tmp/run.sh +RUN chown omero-web:omero-web /tmp/run.sh RUN chmod a+x /tmp/run.sh RUN yum install -y python36 @@ -74,13 +54,17 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH" # Change user id to fix permissions issues ARG USER_ID=1000 -RUN usermod -u $USER_ID omero +RUN usermod -u $USER_ID omero-web + +RUN chown -R omero-web:omero-web /home/omero-web/ # make sure mounted volumes has correct permissions -RUN mkdir -p /home/omero/nginx -RUN chown -R omero:omero /home/omero/nginx +RUN mkdir -p /home/omero-web/nginx +RUN chown -R omero-web:omero-web /home/omero-web/nginx +RUN mkdir -p /home/omero-web/static +RUN chown -R omero-web:omero-web /home/omero-web/static -VOLUME ["/home/omero", "/home/omero/nginx"] +VOLUME ["/home/omero-web", "/home/omero-web/nginx"] -USER omero +USER omero-web CMD ["/tmp/run.sh"]