forked from OSC/ondemand
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
70 lines (60 loc) · 2.49 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
FROM centos:7
LABEL maintainer="[email protected]; [email protected]"
# setup the ondemand repositories
RUN yum -y install https://yum.osc.edu/ondemand/latest/ondemand-release-web-latest-1-6.noarch.rpm
# install all the dependencies
RUN yum install -y centos-release-scl && \
yum -y update && \
yum install -y \
file \
lsof \
sudo \
gcc \
gcc-c++ \
git \
patch \
ondemand-runtime \
ondemand-build \
ondemand-apache \
ondemand-ruby \
ondemand-nodejs \
ondemand-passenger \
ondemand-nginx && \
yum clean all && rm -rf /var/cache/yum/*
RUN mkdir -p /opt/ood
RUN mkdir -p /var/www/ood/{apps,public,discover}
RUN mkdir -p /var/www/ood/apps/{sys,dev,usr}
COPY mod_ood_proxy /opt/ood/mod_ood_proxy
COPY nginx_stage/ /opt/ood/nginx_stage
COPY ood-portal-generator /opt/ood/ood-portal-generator
COPY ood_auth_map /opt/ood/ood_auth_map
COPY apps /opt/ood/apps
COPY Rakefile /opt/ood/Rakefile
RUN cd /opt/ood && \
scl enable ondemand -- rake -mj4 build && \
mv /opt/ood/apps/* /var/www/ood/apps/sys/ && \
rm -rf /opt/ood/Rakefile /opt/ood/apps
# copy configuration files
RUN mkdir -p /etc/ood/config
RUN cp /opt/ood/nginx_stage/share/nginx_stage_example.yml /etc/ood/config/nginx_stage.yml
RUN cp /opt/ood/ood-portal-generator/share/ood_portal_example.yml /etc/ood/config/ood_portal.yml
RUN sed -i -r \
-e 's/^#listen_addr_port:.*/listen_addr_port: 8080/g' \
-e 's/^#port:.*/port: 8080/g' \
-e 's/^#servername:.*/servername: localhost/g' \
/etc/ood/config/ood_portal.yml
# make some misc directories & files
RUN mkdir -p /var/lib/ondemand-nginx/config/apps/{sys,dev,usr}
RUN touch /var/lib/ondemand-nginx/config/apps/sys/{dashboard,shell,files,file-editor,activejobs,myjobs}.conf
# setup sudoers for apache
RUN echo -e 'Defaults:apache !requiretty, !authenticate \n\
Defaults:apache env_keep += "NGINX_STAGE_* OOD_*" \n\
apache ALL=(ALL) NOPASSWD: /opt/ood/nginx_stage/sbin/nginx_stage' >/etc/sudoers.d/ood
# run the OOD executables to setup the env
RUN /opt/ood/ood-portal-generator/sbin/update_ood_portal
RUN /opt/ood/nginx_stage/sbin/update_nginx_stage
RUN sed -i 's#HTTPD24_HTTPD_SCLS_ENABLED=.*#HTTPD24_HTTPD_SCLS_ENABLED="httpd24 ondemand"#g' /opt/rh/httpd24/service-environment
RUN groupadd ood
RUN useradd --create-home --gid ood ood
EXPOSE 80
CMD [ "/opt/rh/httpd24/root/usr/sbin/httpd-scl-wrapper", "-DFOREGROUND" ]