Show More
@@ -1,472 +1,473 b'' | |||||
1 | # virtualenv-install for 5.X |
|
1 | # virtualenv-install for 5.X | |
2 |
|
2 | |||
3 | FROM ubuntu:22.04 |
|
3 | FROM ubuntu:22.04 | |
4 | # Using 22.04 LTS Release |
|
4 | # Using 22.04 LTS Release | |
5 |
|
5 | |||
6 | ARG TZ="UTC" |
|
6 | ARG TZ="UTC" | |
7 | ARG LOCALE_TYPE=en_US.UTF-8 |
|
7 | ARG LOCALE_TYPE=en_US.UTF-8 | |
8 | ARG RHODECODE_TYPE=Enterprise |
|
8 | ARG RHODECODE_TYPE=Enterprise | |
9 |
|
9 | |||
10 | ARG RHODECODE_DB=sqlite |
|
10 | ARG RHODECODE_DB=sqlite | |
11 | ARG RHODECODE_USER_NAME=admin |
|
11 | ARG RHODECODE_USER_NAME=admin | |
12 | ARG RHODECODE_USER_PASS=secret4 |
|
12 | ARG RHODECODE_USER_PASS=secret4 | |
13 | ARG RHODECODE_USER_EMAIL=admin@server.local |
|
13 | ARG RHODECODE_USER_EMAIL=admin@server.local | |
14 |
|
14 | |||
15 | # env are runtime |
|
15 | # env are runtime | |
16 | ENV \ |
|
16 | ENV \ | |
17 | TZ=${TZ} \ |
|
17 | TZ=${TZ} \ | |
18 | LOCALE_TYPE=${LOCALE_TYPE} \ |
|
18 | LOCALE_TYPE=${LOCALE_TYPE} \ | |
19 | \ |
|
19 | \ | |
20 | ## Define type we build, and the instance we'll create |
|
20 | ## Define type we build, and the instance we'll create | |
21 | RHODECODE_TYPE=${RHODECODE_TYPE} \ |
|
21 | RHODECODE_TYPE=${RHODECODE_TYPE} \ | |
22 | RC_TYPE_ID=enterprise-1 \ |
|
22 | RC_TYPE_ID=enterprise-1 \ | |
23 | \ |
|
23 | \ | |
24 | ## set DB, default sqlite |
|
24 | ## set DB, default sqlite | |
25 | RHODECODE_DB=${RHODECODE_DB} \ |
|
25 | RHODECODE_DB=${RHODECODE_DB} \ | |
26 | \ |
|
26 | \ | |
27 | ## set app bootstrap required data |
|
27 | ## set app bootstrap required data | |
28 | RHODECODE_USER_NAME=${RHODECODE_USER_NAME} \ |
|
28 | RHODECODE_USER_NAME=${RHODECODE_USER_NAME} \ | |
29 | RHODECODE_USER_PASS=${RHODECODE_USER_PASS} \ |
|
29 | RHODECODE_USER_PASS=${RHODECODE_USER_PASS} \ | |
30 | RHODECODE_USER_EMAIL=${RHODECODE_USER_EMAIL} \ |
|
30 | RHODECODE_USER_EMAIL=${RHODECODE_USER_EMAIL} \ | |
31 | \ |
|
31 | \ | |
32 | RC_USER=rhodecode \ |
|
32 | RC_USER=rhodecode \ | |
33 | \ |
|
33 | \ | |
34 | # SVN CONFIG |
|
34 | # SVN CONFIG | |
35 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf \ |
|
35 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf \ | |
36 | MOD_DAV_SVN_PORT=8090 \ |
|
36 | MOD_DAV_SVN_PORT=8090 \ | |
37 | MOD_DAV_SVN_LOG_LEVEL=info \ |
|
37 | MOD_DAV_SVN_LOG_LEVEL=info \ | |
38 | MOD_DAV_CORE_MODULES_DIR=/home/rhodecode/apache2/modules \ |
|
38 | MOD_DAV_CORE_MODULES_DIR=/home/rhodecode/apache2/modules \ | |
39 | MOD_DAV_SVN_MODULE=/home/rhodecode/subversion/libexec/mod_dav_svn.so \ |
|
39 | MOD_DAV_SVN_MODULE=/home/rhodecode/subversion/libexec/mod_dav_svn.so \ | |
40 | \ |
|
40 | \ | |
41 | # SSHD CONFIG |
|
41 | # SSHD CONFIG | |
42 | SSHD_CONF_FILE=/etc/rhodecode/sshd_config \ |
|
42 | SSHD_CONF_FILE=/etc/rhodecode/sshd_config \ | |
43 | \ |
|
43 | \ | |
44 | SHARED_CONF_DIR=/etc/rhodecode/conf \ |
|
44 | SHARED_CONF_DIR=/etc/rhodecode/conf \ | |
45 | BUILD_CONF=/etc/rhodecode/conf_build \ |
|
45 | BUILD_CONF=/etc/rhodecode/conf_build \ | |
46 | BUILD_BIN_DIR=/usr/local/bin/rhodecode_bin \ |
|
46 | BUILD_BIN_DIR=/usr/local/bin/rhodecode_bin \ | |
47 | RHODECODE_STATIC_DIR=/var/opt/rhodecode_static \ |
|
47 | RHODECODE_STATIC_DIR=/var/opt/rhodecode_static \ | |
48 | RHODECODE_DATA_DIR=/var/opt/rhodecode_data \ |
|
48 | RHODECODE_DATA_DIR=/var/opt/rhodecode_data \ | |
49 | RHODECODE_REPO_DIR=/var/opt/rhodecode_repo_store \ |
|
49 | RHODECODE_REPO_DIR=/var/opt/rhodecode_repo_store \ | |
50 | RHODECODE_HTTP_PORT=10020 \ |
|
50 | RHODECODE_HTTP_PORT=10020 \ | |
51 | RHODECODE_VCS_PORT=10010 \ |
|
51 | RHODECODE_VCS_PORT=10010 \ | |
52 | RHODECODE_HOST=0.0.0.0 \ |
|
52 | RHODECODE_HOST=0.0.0.0 \ | |
53 | RHODECODE_VCS_HOST=127.0.0.1 |
|
53 | RHODECODE_VCS_HOST=127.0.0.1 | |
54 |
|
54 | |||
55 |
|
55 | |||
56 | ENV SSH_DEPS \ |
|
56 | ENV SSH_DEPS \ | |
57 | openssh-server |
|
57 | openssh-server | |
58 |
|
58 | |||
59 | ENV SVN_DEPS \ |
|
59 | ENV SVN_DEPS \ | |
60 | "" |
|
60 | "" | |
61 |
|
61 | |||
62 | ENV SVN_DEV_DEPS \ |
|
62 | ENV SVN_DEV_DEPS \ | |
63 | libtool automake autoconf libapr1-dev libaprutil1-dev libdb5.3-dev liblz4-dev libpcre3-dev \ |
|
63 | libtool automake autoconf libapr1-dev libaprutil1-dev libdb5.3-dev liblz4-dev libpcre3-dev \ | |
64 | libperl-dev libserf-dev libneon27-gnutls-dev libutf8proc-dev py3c-dev gettext tcl-dev |
|
64 | libperl-dev libserf-dev libneon27-gnutls-dev libutf8proc-dev py3c-dev gettext tcl-dev | |
65 |
|
65 | |||
66 | ENV PYTHON_DEPS \ |
|
66 | ENV PYTHON_DEPS \ | |
67 | python3.11 |
|
67 | python3.11 | |
68 | ENV PYTHON_DEV_DEPS \ |
|
68 | ENV PYTHON_DEV_DEPS \ | |
69 | python3.11-dev build-essential libpq-dev libmysqlclient-dev libxmlsec1-dev libxml2-dev libsqlite3-dev \ |
|
69 | python3.11-dev build-essential libpq-dev libmysqlclient-dev libxmlsec1-dev libxml2-dev libsqlite3-dev \ | |
70 | liblzma-dev libzmq3-dev libldap2-dev libsasl2-dev libcurl4-openssl-dev libssl-dev libxslt-dev |
|
70 | liblzma-dev libzmq3-dev libldap2-dev libsasl2-dev libcurl4-openssl-dev libssl-dev libxslt-dev | |
71 |
|
71 | |||
72 | ENV EXTRA_DEPS \ |
|
72 | ENV EXTRA_DEPS \ | |
73 | vim rsync pkg-config openssl libbz2-1.0 libbz2-dev sqlite3 cpanminus libapr1 |
|
73 | vim rsync pkg-config openssl libbz2-1.0 libbz2-dev sqlite3 cpanminus libapr1 | |
74 |
|
74 | |||
75 | # define which deps from the above should be removed in cleanup phase |
|
75 | # define which deps from the above should be removed in cleanup phase | |
76 | ENV CLEANUP_DEPS \ |
|
76 | ENV CLEANUP_DEPS \ | |
77 | $PYTHON_DEV_DEPS $SVN_DEV_DEPS |
|
77 | $PYTHON_DEV_DEPS $SVN_DEV_DEPS | |
78 | ENV CLEANUP_DEPS "" |
|
78 | ENV CLEANUP_DEPS "" | |
79 |
|
79 | |||
80 | RUN \ |
|
80 | RUN \ | |
81 | echo "** install base packages **" && \ |
|
81 | echo "** install base packages **" && \ | |
82 | set -eux; \ |
|
82 | set -eux; \ | |
83 | apt-get update; \ |
|
83 | apt-get update; \ | |
84 | apt-get install -y ca-certificates curl openssl gpg; \ |
|
84 | apt-get install -y ca-certificates curl openssl gpg; \ | |
85 | curl -fsSL https://keyserver.ubuntu.com/pks/lookup\?op\=get\&search\=0xba6932366a755776 | gpg --dearmor -o /usr/share/keyrings/python-3.gpg; \ |
|
85 | curl -fsSL https://keyserver.ubuntu.com/pks/lookup\?op\=get\&search\=0xba6932366a755776 | gpg --dearmor -o /usr/share/keyrings/python-3.gpg; \ | |
86 | echo "deb [signed-by=/usr/share/keyrings/python-3.gpg] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" >> /etc/apt/sources.list; \ |
|
86 | echo "deb [signed-by=/usr/share/keyrings/python-3.gpg] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" >> /etc/apt/sources.list; \ | |
87 | echo "deb-src [signed-by=/usr/share/keyrings/python-3.gpg] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" >> /etc/apt/sources.list; \ |
|
87 | echo "deb-src [signed-by=/usr/share/keyrings/python-3.gpg] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" >> /etc/apt/sources.list; \ | |
88 | \ |
|
88 | \ | |
89 | savedAptMark="$(apt-mark showmanual)"; \ |
|
89 | savedAptMark="$(apt-mark showmanual)"; \ | |
90 | apt-get update; \ |
|
90 | apt-get update; \ | |
91 | DEBIAN_FRONTEND="noninteractive" \ |
|
91 | DEBIAN_FRONTEND="noninteractive" \ | |
92 | apt-get install -y --no-install-recommends \ |
|
92 | apt-get install -y --no-install-recommends \ | |
93 | tini \ |
|
93 | tini \ | |
94 | bash \ |
|
94 | bash \ | |
95 | binutils \ |
|
95 | binutils \ | |
96 | tzdata \ |
|
96 | tzdata \ | |
97 | locales \ |
|
97 | locales \ | |
98 | openssl \ |
|
98 | openssl \ | |
99 | curl \ |
|
99 | curl \ | |
100 | sudo \ |
|
100 | sudo \ | |
101 | gosu \ |
|
101 | gosu \ | |
102 | bzip2 unzip \ |
|
102 | bzip2 unzip \ | |
103 | $PYTHON_DEPS $PYTHON_DEV_DEPS\ |
|
103 | $PYTHON_DEPS $PYTHON_DEV_DEPS\ | |
104 | $SSH_DEPS \ |
|
104 | $SSH_DEPS \ | |
105 | $SVN_DEPS $SVN_DEV_DEPS\ |
|
105 | $SVN_DEPS $SVN_DEV_DEPS\ | |
106 | $EXTRA_DEPS \ |
|
106 | $EXTRA_DEPS \ | |
107 | ; \ |
|
107 | ; \ | |
108 | rm -rf /var/lib/apt/lists/*; |
|
108 | rm -rf /var/lib/apt/lists/*; | |
109 |
|
109 | |||
110 | RUN \ |
|
110 | RUN \ | |
111 | echo "** Configure the locales **" && \ |
|
111 | echo "** Configure the locales **" && \ | |
112 | sed -i "s/^# ${LOCALE_TYPE}/${LOCALE_TYPE}/g" /etc/locale.gen && \ |
|
112 | sed -i "s/^# ${LOCALE_TYPE}/${LOCALE_TYPE}/g" /etc/locale.gen && \ | |
113 | locale-gen |
|
113 | locale-gen | |
114 |
|
114 | |||
115 | # locale-archive is a fix for old nix glibc2.26 locales available |
|
115 | # locale-archive is a fix for old nix glibc2.26 locales available | |
116 | ENV \ |
|
116 | ENV \ | |
117 | #LOCALE_ARCHIVE=/var/opt/locale-archive \ |
|
117 | #LOCALE_ARCHIVE=/var/opt/locale-archive \ | |
118 | LANG=${LOCALE_TYPE} \ |
|
118 | LANG=${LOCALE_TYPE} \ | |
119 | LANGUAGE=${LOCALE_TYPE} \ |
|
119 | LANGUAGE=${LOCALE_TYPE} \ | |
120 | LC_ALL=${LOCALE_TYPE} |
|
120 | LC_ALL=${LOCALE_TYPE} | |
121 |
|
121 | |||
122 | # configure the system user |
|
122 | # configure the system user | |
123 | # explicitly set uid/gid to guarantee that it won't change in the future |
|
123 | # explicitly set uid/gid to guarantee that it won't change in the future | |
124 | # the values 999:999 are identical to the current user/group id assigned |
|
124 | # the values 999:999 are identical to the current user/group id assigned | |
125 | RUN \ |
|
125 | RUN \ | |
126 | echo "** Create system user $RC_USER **" && \ |
|
126 | echo "** Create system user $RC_USER **" && \ | |
127 | groupadd --system --gid 999 $RC_USER && \ |
|
127 | groupadd --system --gid 999 $RC_USER && \ | |
128 | useradd --system --gid $RC_USER --uid 999 --shell /bin/bash $RC_USER && \ |
|
128 | useradd --system --gid $RC_USER --uid 999 --shell /bin/bash $RC_USER && \ | |
129 | usermod -G $RC_USER $RC_USER |
|
129 | usermod -G $RC_USER $RC_USER | |
130 |
|
130 | |||
131 | # Add new user docker to sudo group |
|
131 | # Add new user docker to sudo group | |
132 | RUN \ |
|
132 | RUN \ | |
133 | adduser $RC_USER sudo |
|
133 | adduser $RC_USER sudo | |
134 |
|
134 | |||
135 | # Ensure sudo group users are not |
|
135 | # Ensure sudo group users are not | |
136 | # asked for a password when using |
|
136 | # asked for a password when using | |
137 | # sudo command by ammending sudoers file |
|
137 | # sudo command by ammending sudoers file | |
138 | RUN \ |
|
138 | RUN \ | |
139 | echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers |
|
139 | echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | |
140 |
|
140 | |||
141 | # set the defult bash shell |
|
141 | # set the defult bash shell | |
142 | SHELL ["/bin/bash", "-c"] |
|
142 | SHELL ["/bin/bash", "-c"] | |
143 |
|
143 | |||
144 | # Fix and set a timezone |
|
144 | # Fix and set a timezone | |
145 | RUN \ |
|
145 | RUN \ | |
146 | echo "** configure the timezone **" && \ |
|
146 | echo "** configure the timezone **" && \ | |
147 | rm /etc/localtime && cp /usr/share/zoneinfo/$TZ /etc/localtime && \ |
|
147 | rm /etc/localtime && cp /usr/share/zoneinfo/$TZ /etc/localtime && \ | |
148 | echo $TZ > /etc/timezone |
|
148 | echo $TZ > /etc/timezone | |
149 |
|
149 | |||
150 |
|
150 | |||
151 | RUN \ |
|
151 | RUN \ | |
152 | echo "** prepare rhodecode store and cache **" && \ |
|
152 | echo "** prepare rhodecode store and cache **" && \ | |
153 | install -d -m 0755 -o $RC_USER -g $RC_USER /opt/rhodecode && \ |
|
153 | install -d -m 0755 -o $RC_USER -g $RC_USER /opt/rhodecode && \ | |
154 | install -d -m 0700 -o $RC_USER -g $RC_USER /home/$RC_USER/venv && \ |
|
|||
155 | install -d -m 0755 -o $RC_USER -g $RC_USER /usr/local/bin/rhodecode_bin && \ |
|
154 | install -d -m 0755 -o $RC_USER -g $RC_USER /usr/local/bin/rhodecode_bin && \ | |
156 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_STATIC_DIR && \ |
|
155 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_STATIC_DIR && \ | |
157 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_REPO_DIR && \ |
|
156 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_REPO_DIR && \ | |
158 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_DATA_DIR && \ |
|
157 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_DATA_DIR && \ | |
159 | install -d -m 0755 -o $RC_USER -g $RC_USER $BUILD_CONF && \ |
|
158 | install -d -m 0755 -o $RC_USER -g $RC_USER $BUILD_CONF && \ | |
|
159 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/ && \ | |||
|
160 | install -m 0755 -o $RC_USER -g $RC_USER /dev/null /home/$RC_USER/.rhoderc && \ | |||
|
161 | install -d -m 0700 -o $RC_USER -g $RC_USER /home/$RC_USER/venv && \ | |||
160 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-vcsserver && \ |
|
162 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-vcsserver && \ | |
161 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ce && \ |
|
163 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ce && \ | |
162 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ee && \ |
|
164 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ee && \ | |
163 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/ && \ |
|
|||
164 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol && \ |
|
165 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol && \ | |
165 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/cache && \ |
|
166 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/cache && \ | |
166 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/bootstrap && \ |
|
167 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/bootstrap && \ | |
167 | install -d -m 0700 -o $RC_USER -g $RC_USER /home/$RC_USER/.ssh |
|
168 | install -d -m 0700 -o $RC_USER -g $RC_USER /home/$RC_USER/.ssh | |
168 |
|
169 | |||
169 | # expose our custom sshd config |
|
170 | # expose our custom sshd config | |
170 | COPY service/sshd/sshd_config $SSHD_CONF_FILE |
|
171 | COPY service/sshd/sshd_config $SSHD_CONF_FILE | |
171 |
|
172 | |||
172 | # change to non-root user for RUN commands |
|
173 | # change to non-root user for RUN commands | |
173 | USER $RC_USER |
|
174 | USER $RC_USER | |
174 | WORKDIR /home/$RC_USER |
|
175 | WORKDIR /home/$RC_USER | |
175 |
|
176 | |||
176 | ENV \ |
|
177 | ENV \ | |
177 | VENV_PATH=/home/$RC_USER/venv |
|
178 | VENV_PATH=/home/$RC_USER/venv | |
178 |
|
179 | |||
179 | ENV \ |
|
180 | ENV \ | |
180 | PYTHON_VERSION=python3.11 \ |
|
181 | PYTHON_VERSION=python3.11 \ | |
181 | PYTHON_EXECUTABLE=/usr/bin/python3.11 \ |
|
182 | PYTHON_EXECUTABLE=/usr/bin/python3.11 \ | |
182 | PYTHON=$VENV_PATH/bin/python3.11 \ |
|
183 | PYTHON=$VENV_PATH/bin/python3.11 \ | |
183 | PIP_EXECUTABLE=$VENV_PATH/bin/pip \ |
|
184 | PIP_EXECUTABLE=$VENV_PATH/bin/pip \ | |
184 | # make venv application scripts visible |
|
185 | # make venv application scripts visible | |
185 | PATH=$VENV_PATH/bin:/home/$RC_USER/.local/bin:$PATH |
|
186 | PATH=$VENV_PATH/bin:/home/$RC_USER/.local/bin:$PATH | |
186 |
|
187 | |||
187 | # check new versions here: https://pypi.org/project/pip/ |
|
188 | # check new versions here: https://pypi.org/project/pip/ | |
188 | RUN \ |
|
189 | RUN \ | |
189 | echo "** get pip **" && \ |
|
190 | echo "** get pip **" && \ | |
190 | curl -sSL https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ |
|
191 | curl -sSL https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ | |
191 | $PYTHON_EXECUTABLE get-pip.py \ |
|
192 | $PYTHON_EXECUTABLE get-pip.py \ | |
192 | --disable-pip-version-check \ |
|
193 | --disable-pip-version-check \ | |
193 | --no-cache-dir \ |
|
194 | --no-cache-dir \ | |
194 | --no-compile \ |
|
195 | --no-compile \ | |
195 | "pip==23.3.2" && \ |
|
196 | "pip==23.3.2" && \ | |
196 | rm get-pip.py |
|
197 | rm get-pip.py | |
197 |
|
198 | |||
198 | RUN \ |
|
199 | RUN \ | |
199 | /home/$RC_USER/.local/bin/pip install --user virtualenv |
|
200 | /home/$RC_USER/.local/bin/pip install --user virtualenv | |
200 |
|
201 | |||
201 | RUN \ |
|
202 | RUN \ | |
202 | /home/$RC_USER/.local/bin/virtualenv --python="$PYTHON_EXECUTABLE" $VENV_PATH && \ |
|
203 | /home/$RC_USER/.local/bin/virtualenv --python="$PYTHON_EXECUTABLE" $VENV_PATH && \ | |
203 | /home/$RC_USER/.local/bin/pip install --upgrade pip |
|
204 | /home/$RC_USER/.local/bin/pip install --upgrade pip | |
204 |
|
205 | |||
205 | # swig install |
|
206 | # swig install | |
206 | ENV \ |
|
207 | ENV \ | |
207 | RC_SWIG_VERSION=3.0.12 \ |
|
208 | RC_SWIG_VERSION=3.0.12 \ | |
208 | PATH=/usr/local/bin/:$PATH |
|
209 | PATH=/usr/local/bin/:$PATH | |
209 |
|
210 | |||
210 | RUN \ |
|
211 | RUN \ | |
211 | echo "** install swig packages $RC_SWIG_VERSION **" && \ |
|
212 | echo "** install swig packages $RC_SWIG_VERSION **" && \ | |
212 | curl -L https://sourceforge.net/projects/swig/files/swig/swig-$RC_SWIG_VERSION/swig-$RC_SWIG_VERSION.tar.gz/download -o swig.tar.gz && \ |
|
213 | curl -L https://sourceforge.net/projects/swig/files/swig/swig-$RC_SWIG_VERSION/swig-$RC_SWIG_VERSION.tar.gz/download -o swig.tar.gz && \ | |
213 | tar xfz swig.tar.gz && rm swig.tar.gz && \ |
|
214 | tar xfz swig.tar.gz && rm swig.tar.gz && \ | |
214 | cd swig-$RC_SWIG_VERSION && \ |
|
215 | cd swig-$RC_SWIG_VERSION && \ | |
215 | ./configure --with-python=$PYTHON && \ |
|
216 | ./configure --with-python=$PYTHON && \ | |
216 | make && \ |
|
217 | make && \ | |
217 | sudo make install && \ |
|
218 | sudo make install && \ | |
218 | cd ../ && sudo rm -rf swig-$RC_SWIG_VERSION |
|
219 | cd ../ && sudo rm -rf swig-$RC_SWIG_VERSION | |
219 |
|
220 | |||
220 | # GIT Install |
|
221 | # GIT Install | |
221 | ENV \ |
|
222 | ENV \ | |
222 | RC_GIT_VER=2.41.0 \ |
|
223 | RC_GIT_VER=2.41.0 \ | |
223 | # make git scripts visible |
|
224 | # make git scripts visible | |
224 | PATH=/home/$RC_USER/git/bin:$PATH |
|
225 | PATH=/home/$RC_USER/git/bin:$PATH | |
225 |
|
226 | |||
226 | RUN \ |
|
227 | RUN \ | |
227 | echo "** install git packages $RC_GIT_VER **" && \ |
|
228 | echo "** install git packages $RC_GIT_VER **" && \ | |
228 | curl -L https://www.kernel.org/pub/software/scm/git/git-$RC_GIT_VER.tar.gz -o git.tar.gz && \ |
|
229 | curl -L https://www.kernel.org/pub/software/scm/git/git-$RC_GIT_VER.tar.gz -o git.tar.gz && \ | |
229 | tar xfz git.tar.gz && rm git.tar.gz && \ |
|
230 | tar xfz git.tar.gz && rm git.tar.gz && \ | |
230 | cd git-$RC_GIT_VER && \ |
|
231 | cd git-$RC_GIT_VER && \ | |
231 | ./configure --prefix=/home/$RC_USER/git && \ |
|
232 | ./configure --prefix=/home/$RC_USER/git && \ | |
232 | make NO_GETTEXT=yes NO_MSGFMT=yes && \ |
|
233 | make NO_GETTEXT=yes NO_MSGFMT=yes && \ | |
233 | sudo make install && \ |
|
234 | sudo make install && \ | |
234 | cd ../ && sudo rm -rf git-$RC_GIT_VER |
|
235 | cd ../ && sudo rm -rf git-$RC_GIT_VER | |
235 |
|
236 | |||
236 | RUN \ |
|
237 | RUN \ | |
237 | echo "** install git symlinks **" && \ |
|
238 | echo "** install git symlinks **" && \ | |
238 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ |
|
239 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ | |
239 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/git && \ |
|
240 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/git && \ | |
240 | ln -s /home/$RC_USER/git/bin/* $BUILD_BIN_DIR/vcs_bin/ |
|
241 | ln -s /home/$RC_USER/git/bin/* $BUILD_BIN_DIR/vcs_bin/ | |
241 |
|
242 | |||
242 | # GIT LFS install |
|
243 | # GIT LFS install | |
243 | ENV \ |
|
244 | ENV \ | |
244 | RC_GIT_LFS_VER=3.4.1 \ |
|
245 | RC_GIT_LFS_VER=3.4.1 \ | |
245 | PATH=/home/$RC_USER/git-lfs/bin:$PATH |
|
246 | PATH=/home/$RC_USER/git-lfs/bin:$PATH | |
246 |
|
247 | |||
247 | RUN \ |
|
248 | RUN \ | |
248 | echo "** install git LFS packages $RC_GIT_LFS_VER **" && \ |
|
249 | echo "** install git LFS packages $RC_GIT_LFS_VER **" && \ | |
249 | curl -L https://github.com/git-lfs/git-lfs/releases/download/v$RC_GIT_LFS_VER/git-lfs-linux-amd64-v$RC_GIT_LFS_VER.tar.gz -o git_lfs.tar.gz && \ |
|
250 | curl -L https://github.com/git-lfs/git-lfs/releases/download/v$RC_GIT_LFS_VER/git-lfs-linux-amd64-v$RC_GIT_LFS_VER.tar.gz -o git_lfs.tar.gz && \ | |
250 | tar xfz git_lfs.tar.gz && rm git_lfs.tar.gz && \ |
|
251 | tar xfz git_lfs.tar.gz && rm git_lfs.tar.gz && \ | |
251 | mv git-lfs-$RC_GIT_LFS_VER git-lfs && \ |
|
252 | mv git-lfs-$RC_GIT_LFS_VER git-lfs && \ | |
252 | rm -rf git-lfs/man && \ |
|
253 | rm -rf git-lfs/man && \ | |
253 | cd git-lfs && \ |
|
254 | cd git-lfs && \ | |
254 | sudo PREFIX=/home/$RC_USER/git ./install.sh && \ |
|
255 | sudo PREFIX=/home/$RC_USER/git ./install.sh && \ | |
255 | rm install.sh README.md CHANGELOG.md |
|
256 | rm install.sh README.md CHANGELOG.md | |
256 |
|
257 | |||
257 | RUN \ |
|
258 | RUN \ | |
258 | echo "** install git-lfs symlinks **" && \ |
|
259 | echo "** install git-lfs symlinks **" && \ | |
259 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ |
|
260 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ | |
260 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/git-lfs && \ |
|
261 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/git-lfs && \ | |
261 | ln -s /home/$RC_USER/git-lfs/* $BUILD_BIN_DIR/vcs_bin/ |
|
262 | ln -s /home/$RC_USER/git-lfs/* $BUILD_BIN_DIR/vcs_bin/ | |
262 |
|
263 | |||
263 | # Apache2 install, check here for new versions: https://httpd.apache.org/ |
|
264 | # Apache2 install, check here for new versions: https://httpd.apache.org/ | |
264 | ENV \ |
|
265 | ENV \ | |
265 | RC_APACHE2_VER=2.4.58 \ |
|
266 | RC_APACHE2_VER=2.4.58 \ | |
266 | # make apache scripts visible |
|
267 | # make apache scripts visible | |
267 | PATH=/home/$RC_USER/apache2/bin:$PATH |
|
268 | PATH=/home/$RC_USER/apache2/bin:$PATH | |
268 |
|
269 | |||
269 | RUN \ |
|
270 | RUN \ | |
270 | echo "** install Apache packages $RC_SVN_VER **" && \ |
|
271 | echo "** install Apache packages $RC_SVN_VER **" && \ | |
271 | curl -L https://archive.apache.org/dist/httpd/httpd-$RC_APACHE2_VER.tar.gz -o apache2.tar.gz && \ |
|
272 | curl -L https://archive.apache.org/dist/httpd/httpd-$RC_APACHE2_VER.tar.gz -o apache2.tar.gz && \ | |
272 | tar xfz apache2.tar.gz && rm apache2.tar.gz && \ |
|
273 | tar xfz apache2.tar.gz && rm apache2.tar.gz && \ | |
273 | cd httpd-$RC_APACHE2_VER && \ |
|
274 | cd httpd-$RC_APACHE2_VER && \ | |
274 | ./configure --prefix=/home/$RC_USER/apache2 --enable-mods-shared=reallyall --enable-dav --enable-authn-anon && \ |
|
275 | ./configure --prefix=/home/$RC_USER/apache2 --enable-mods-shared=reallyall --enable-dav --enable-authn-anon && \ | |
275 | make && \ |
|
276 | make && \ | |
276 | make install && \ |
|
277 | make install && \ | |
277 | cd ../ && sudo rm -rf httpd-$RC_APACHE2_VER |
|
278 | cd ../ && sudo rm -rf httpd-$RC_APACHE2_VER | |
278 |
|
279 | |||
279 | # custom SVN virtualhost |
|
280 | # custom SVN virtualhost | |
280 | COPY \ |
|
281 | COPY \ | |
281 | service/svn/virtualhost.conf /home/$RC_USER/apache2/conf/virtualhost.conf |
|
282 | service/svn/virtualhost.conf /home/$RC_USER/apache2/conf/virtualhost.conf | |
282 |
|
283 | |||
283 | RUN \ |
|
284 | RUN \ | |
284 | echo "**** Apache config ****" && \ |
|
285 | echo "**** Apache config ****" && \ | |
285 | sed -i "s/Listen 80/Listen ${MOD_DAV_SVN_PORT}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
286 | sed -i "s/Listen 80/Listen ${MOD_DAV_SVN_PORT}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
286 | sed -i "s/#LoadModule dav_module modules\/mod_dav.so/LoadModule dav_module modules\/mod_dav.so/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
287 | sed -i "s/#LoadModule dav_module modules\/mod_dav.so/LoadModule dav_module modules\/mod_dav.so/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
287 | sed -i "s/User daemon/User ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
288 | sed -i "s/User daemon/User ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
288 | sed -i "s/Group daemon/Group ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
289 | sed -i "s/Group daemon/Group ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
289 | sed -i "s/ServerAdmin you@example.com/ServerAdmin admin@${HOSTNAME}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
290 | sed -i "s/ServerAdmin you@example.com/ServerAdmin admin@${HOSTNAME}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
290 | sed -i "s/ServerName buildkitsandbox/ServerName ${HOSTNAME}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ |
|
291 | sed -i "s/ServerName buildkitsandbox/ServerName ${HOSTNAME}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |
291 | sed -i "s/#Include conf\/extra\/httpd-vhosts.conf/Include conf\/virtualhost.conf/g" /home/$RC_USER/apache2/conf/httpd.conf |
|
292 | sed -i "s/#Include conf\/extra\/httpd-vhosts.conf/Include conf\/virtualhost.conf/g" /home/$RC_USER/apache2/conf/httpd.conf | |
292 |
|
293 | |||
293 |
|
294 | |||
294 | # Subversion install |
|
295 | # Subversion install | |
295 | # https://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/swig/INSTALL |
|
296 | # https://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/swig/INSTALL | |
296 | # new versions: https://subversion.apache.org/download.cgi |
|
297 | # new versions: https://subversion.apache.org/download.cgi | |
297 | # https://downloads.apache.org/subversion |
|
298 | # https://downloads.apache.org/subversion | |
298 |
|
299 | |||
299 | ENV \ |
|
300 | ENV \ | |
300 | RC_SVN_VER=1.14.2 \ |
|
301 | RC_SVN_VER=1.14.2 \ | |
301 | SVN_PREFIX=/home/$RC_USER/subversion \ |
|
302 | SVN_PREFIX=/home/$RC_USER/subversion \ | |
302 | # make svn scripts visible |
|
303 | # make svn scripts visible | |
303 | PATH=/home/$RC_USER/subversion/bin:$PATH |
|
304 | PATH=/home/$RC_USER/subversion/bin:$PATH | |
304 |
|
305 | |||
305 |
|
306 | |||
306 | RUN \ |
|
307 | RUN \ | |
307 | echo "** install svn packages $RC_SVN_VER **" && \ |
|
308 | echo "** install svn packages $RC_SVN_VER **" && \ | |
308 | curl -L https://downloads.apache.org/subversion/subversion-$RC_SVN_VER.tar.gz -o subversion.tar.gz && \ |
|
309 | curl -L https://downloads.apache.org/subversion/subversion-$RC_SVN_VER.tar.gz -o subversion.tar.gz && \ | |
309 | tar xfz subversion.tar.gz && rm subversion.tar.gz && \ |
|
310 | tar xfz subversion.tar.gz && rm subversion.tar.gz && \ | |
310 | cd subversion-$RC_SVN_VER && \ |
|
311 | cd subversion-$RC_SVN_VER && \ | |
311 | ./autogen.sh && \ |
|
312 | ./autogen.sh && \ | |
312 | ./configure --prefix=$SVN_PREFIX --with-apxs=/home/$RC_USER/apache2/bin/apxs --enable-mod-activation --with-swig=/usr/local/bin/swig && \ |
|
313 | ./configure --prefix=$SVN_PREFIX --with-apxs=/home/$RC_USER/apache2/bin/apxs --enable-mod-activation --with-swig=/usr/local/bin/swig && \ | |
313 | make && \ |
|
314 | make && \ | |
314 | sudo make install && \ |
|
315 | sudo make install && \ | |
315 | sudo make clean-swig-py && \ |
|
316 | sudo make clean-swig-py && \ | |
316 | sudo make swig-py swig_pydir=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/svn && \ |
|
317 | sudo make swig-py swig_pydir=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/svn && \ | |
317 | sudo make install-swig-py swig_pydir=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/svn && \ |
|
318 | sudo make install-swig-py swig_pydir=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/$PYTHON_VERSION/site-packages/svn && \ | |
318 | sudo ldconfig -v && \ |
|
319 | sudo ldconfig -v && \ | |
319 | cd ../ && sudo rm -rf subversion-$RC_SVN_VER |
|
320 | cd ../ && sudo rm -rf subversion-$RC_SVN_VER | |
320 |
|
321 | |||
321 | RUN \ |
|
322 | RUN \ | |
322 | echo "** install svn symlinks **" && \ |
|
323 | echo "** install svn symlinks **" && \ | |
323 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ |
|
324 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ | |
324 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/subversion && \ |
|
325 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/subversion && \ | |
325 | echo $(strings $MOD_DAV_SVN_MODULE | grep 'Powered by') > $BUILD_BIN_DIR/vcs_bin/mod_dav_svn.version && \ |
|
326 | echo $(strings $MOD_DAV_SVN_MODULE | grep 'Powered by') > $BUILD_BIN_DIR/vcs_bin/mod_dav_svn.version && \ | |
326 | ln -s /home/$RC_USER/subversion/bin/* $BUILD_BIN_DIR/vcs_bin/ |
|
327 | ln -s /home/$RC_USER/subversion/bin/* $BUILD_BIN_DIR/vcs_bin/ | |
327 |
|
328 | |||
328 | #TODO: compile libgit2 |
|
329 | #TODO: compile libgit2 | |
329 | #https://www.pygit2.org/install.html#advanced |
|
330 | #https://www.pygit2.org/install.html#advanced | |
330 | #ENV \ |
|
331 | #ENV \ | |
331 | # RC_LIBGIT2_VER=1.14.2 \ |
|
332 | # RC_LIBGIT2_VER=1.14.2 \ | |
332 | # curl -L https://github.com/libgit2/libgit2/archive/refs/tags/v$RC_LIBGIT2_VER.tar.gz -o libgit2.tar.gz |
|
333 | # curl -L https://github.com/libgit2/libgit2/archive/refs/tags/v$RC_LIBGIT2_VER.tar.gz -o libgit2.tar.gz | |
333 | # tar xzf libgit2.tar.gz && rm libgit2.tar.gz |
|
334 | # tar xzf libgit2.tar.gz && rm libgit2.tar.gz | |
334 | # cd libgit2-$RC_LIBGIT2_VER/ |
|
335 | # cd libgit2-$RC_LIBGIT2_VER/ | |
335 | # cmake . |
|
336 | # cmake . | |
336 | # make |
|
337 | # make | |
337 | # sudo make install \ |
|
338 | # sudo make install \ | |
338 | # |
|
339 | # | |
339 |
|
340 | |||
340 | ARG RHODECODE_VERSION=5.0.0 |
|
341 | ARG RHODECODE_VERSION=5.0.0 | |
341 |
|
342 | |||
342 | # env are runtime |
|
343 | # env are runtime | |
343 | ENV \ |
|
344 | ENV \ | |
344 | ## SETUP ARGS FOR INSTALLATION ## |
|
345 | ## SETUP ARGS FOR INSTALLATION ## | |
345 | ## set version we build on, get from .env or set default ver |
|
346 | ## set version we build on, get from .env or set default ver | |
346 | RHODECODE_VERSION=${RHODECODE_VERSION} |
|
347 | RHODECODE_VERSION=${RHODECODE_VERSION} | |
347 |
|
348 | |||
348 | RUN \ |
|
349 | RUN \ | |
349 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' | sudo tee -a /root/.bashrc && \ |
|
350 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' | sudo tee -a /root/.bashrc && \ | |
350 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' | sudo tee -a /home/$RC_USER/.bashrc |
|
351 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' | sudo tee -a /home/$RC_USER/.bashrc | |
351 |
|
352 | |||
352 | # Copy artifacts |
|
353 | # Copy artifacts | |
353 | #COPY --chown=$RC_USER:$RC_USER .cache/locale-archive /var/opt/ |
|
354 | #COPY --chown=$RC_USER:$RC_USER .cache/locale-archive /var/opt/ | |
354 | COPY --chown=$RC_USER:$RC_USER config/_shared/rhodecode_enterprise.license /home/$RC_USER/.rccontrol/bootstrap/ |
|
355 | COPY --chown=$RC_USER:$RC_USER config/_shared/rhodecode_enterprise.license /home/$RC_USER/.rccontrol/bootstrap/ | |
355 | COPY --chown=$RC_USER:$RC_USER service/rhodecode/bootstrap/* /home/$RC_USER/.rccontrol/bootstrap/ |
|
356 | COPY --chown=$RC_USER:$RC_USER service/rhodecode/bootstrap/* /home/$RC_USER/.rccontrol/bootstrap/ | |
356 | COPY --chown=$RC_USER:$RC_USER .source/ /home/$RC_USER/ |
|
357 | COPY --chown=$RC_USER:$RC_USER .source/ /home/$RC_USER/ | |
357 |
|
358 | |||
358 | # VCS |
|
359 | # VCS | |
359 | RUN \ |
|
360 | RUN \ | |
360 | echo "** install vcsserver ${RHODECODE_VERSION} **" && \ |
|
361 | echo "** install vcsserver ${RHODECODE_VERSION} **" && \ | |
361 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ |
|
362 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |
362 | -r /home/$RC_USER/rhodecode-vcsserver/requirements.txt && \ |
|
363 | -r /home/$RC_USER/rhodecode-vcsserver/requirements.txt && \ | |
363 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-vcsserver |
|
364 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-vcsserver | |
364 |
|
365 | |||
365 | RUN \ |
|
366 | RUN \ | |
366 | #echo "** copy config of vcsserver ${RHODECODE_VERSION} **" && \ |
|
367 | #echo "** copy config of vcsserver ${RHODECODE_VERSION} **" && \ | |
367 | VCSSERVER_PATH=/home/$RC_USER/rhodecode-vcsserver && \ |
|
368 | VCSSERVER_PATH=/home/$RC_USER/rhodecode-vcsserver && \ | |
368 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/vcs_bin/ && \ |
|
369 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/vcs_bin/ && \ | |
369 | cp -v ${VCSSERVER_PATH}/configs/production.ini $BUILD_CONF/vcsserver.ini && \ |
|
370 | cp -v ${VCSSERVER_PATH}/configs/production.ini $BUILD_CONF/vcsserver.ini && \ | |
370 | cp -v ${VCSSERVER_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_vcs.py && \ |
|
371 | cp -v ${VCSSERVER_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_vcs.py && \ | |
371 | echo "Done copy config of vcsserver" |
|
372 | echo "Done copy config of vcsserver" | |
372 |
|
373 | |||
373 | # CE |
|
374 | # CE | |
374 | RUN \ |
|
375 | RUN \ | |
375 | echo "** install rhodecode-ce ${RHODECODE_VERSION} **" && \ |
|
376 | echo "** install rhodecode-ce ${RHODECODE_VERSION} **" && \ | |
376 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ |
|
377 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |
377 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements_rc_tools.txt \ |
|
378 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements_rc_tools.txt \ | |
378 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements.txt && \ |
|
379 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements.txt && \ | |
379 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ce |
|
380 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ce | |
380 |
|
381 | |||
381 | RUN \ |
|
382 | RUN \ | |
382 | echo "** copy config of rhodecode-ce ${RHODECODE_VERSION} **" && \ |
|
383 | echo "** copy config of rhodecode-ce ${RHODECODE_VERSION} **" && \ | |
383 | RHODECODE_PATH=/home/$RC_USER/rhodecode-enterprise-ce && \ |
|
384 | RHODECODE_PATH=/home/$RC_USER/rhodecode-enterprise-ce && \ | |
384 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/bin/ && \ |
|
385 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/bin/ && \ | |
385 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ |
|
386 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ | |
386 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ |
|
387 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ | |
387 | mkdir -p $RHODECODE_STATIC_DIR/static/ && cp -Rf /${RHODECODE_PATH}/rhodecode/public/* $RHODECODE_STATIC_DIR/static/ && chmod 755 -R $RHODECODE_STATIC_DIR/static/ && \ |
|
388 | mkdir -p $RHODECODE_STATIC_DIR/static/ && cp -Rf /${RHODECODE_PATH}/rhodecode/public/* $RHODECODE_STATIC_DIR/static/ && chmod 755 -R $RHODECODE_STATIC_DIR/static/ && \ | |
388 | echo "Done copy config of rhodecode-ce" |
|
389 | echo "Done copy config of rhodecode-ce" | |
389 |
|
390 | |||
390 | # EE |
|
391 | # EE | |
391 | RUN \ |
|
392 | RUN \ | |
392 | echo "** install rhodecode-ee ${RHODECODE_VERSION} **" && \ |
|
393 | echo "** install rhodecode-ee ${RHODECODE_VERSION} **" && \ | |
393 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ |
|
394 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |
394 | -r /home/$RC_USER/rhodecode-enterprise-ee/requirements.txt && \ |
|
395 | -r /home/$RC_USER/rhodecode-enterprise-ee/requirements.txt && \ | |
395 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ee |
|
396 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ee | |
396 |
|
397 | |||
397 | RUN \ |
|
398 | RUN \ | |
398 | echo "** copy config of rhodecode-ee ${RHODECODE_VERSION} **" && \ |
|
399 | echo "** copy config of rhodecode-ee ${RHODECODE_VERSION} **" && \ | |
399 | RHODECODE_PATH=/home/$RC_USER/rhodecode-enterprise-ee && \ |
|
400 | RHODECODE_PATH=/home/$RC_USER/rhodecode-enterprise-ee && \ | |
400 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/bin/ && \ |
|
401 | rsync -a $VENV_PATH/bin/ $BUILD_BIN_DIR/bin/ && \ | |
401 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ |
|
402 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ | |
402 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ |
|
403 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ | |
403 | mkdir -p $RHODECODE_STATIC_DIR/static/ && cp -Rf /${RHODECODE_PATH}/rc_ee/public/* $RHODECODE_STATIC_DIR/static/ && chmod 755 -R $RHODECODE_STATIC_DIR/static/ && \ |
|
404 | mkdir -p $RHODECODE_STATIC_DIR/static/ && cp -Rf /${RHODECODE_PATH}/rc_ee/public/* $RHODECODE_STATIC_DIR/static/ && chmod 755 -R $RHODECODE_STATIC_DIR/static/ && \ | |
404 | echo "Done copy config of rhodecode-ee" |
|
405 | echo "Done copy config of rhodecode-ee" | |
405 |
|
406 | |||
406 | RUN \ |
|
407 | RUN \ | |
407 | echo "** STATIC FILE CHECK **" && \ |
|
408 | echo "** STATIC FILE CHECK **" && \ | |
408 | find $RHODECODE_STATIC_DIR/static/ -type f -name "*.less" -delete && \ |
|
409 | find $RHODECODE_STATIC_DIR/static/ -type f -name "*.less" -delete && \ | |
409 | rm $RHODECODE_STATIC_DIR/static/js/scripts.js && \ |
|
410 | rm $RHODECODE_STATIC_DIR/static/js/scripts.js && \ | |
410 | /home/$RC_USER/rhodecode-enterprise-ce/rhodecode/tests/scripts/static-file-check.sh $RHODECODE_STATIC_DIR/static/ && \ |
|
411 | /home/$RC_USER/rhodecode-enterprise-ce/rhodecode/tests/scripts/static-file-check.sh $RHODECODE_STATIC_DIR/static/ && \ | |
411 | echo "Done static file check" |
|
412 | echo "Done static file check" | |
412 |
|
413 | |||
413 |
|
414 | |||
414 | RUN \ |
|
415 | RUN \ | |
415 | echo "** cleanup of EE code **" && \ |
|
416 | echo "** cleanup of EE code **" && \ | |
416 | for out in "rc_ee" "rc_auth_plugins" "rc_chat" "rc_elasticsearch" "rc_integrations" "rc_license" "rc_reviewers"; do \ |
|
417 | for out in "rc_ee" "rc_auth_plugins" "rc_chat" "rc_elasticsearch" "rc_integrations" "rc_license" "rc_reviewers"; do \ | |
417 | echo ; \ |
|
418 | echo ; \ | |
418 | echo "cleanup of '$VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out'"; \ |
|
419 | echo "cleanup of '$VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out'"; \ | |
419 | rm -rf $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out/tests; \ |
|
420 | rm -rf $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out/tests; \ | |
420 | rm -rf `find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -path "*__pycache__"`; \ |
|
421 | rm -rf `find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -path "*__pycache__"`; \ | |
421 | rm -f `find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -type f \( -name "*.py" -o -name "*.c" \) -not -name "__init__.py" -not -path "*celerylib/tasks.py"`; \ |
|
422 | rm -f `find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -type f \( -name "*.py" -o -name "*.c" \) -not -name "__init__.py" -not -path "*celerylib/tasks.py"`; \ | |
422 | rm -f `echo "\`find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -type f -name \"*.so\"\` " | sed -e "s/\.so[ \t]*/\.pyc /g"`; \ |
|
423 | rm -f `echo "\`find $VENV_PATH/lib/$PYTHON_VERSION/site-packages/$out -type f -name \"*.so\"\` " | sed -e "s/\.so[ \t]*/\.pyc /g"`; \ | |
423 | done |
|
424 | done | |
424 |
|
425 | |||
425 |
|
426 | |||
426 | USER root |
|
427 | USER root | |
427 |
|
428 | |||
428 | RUN \ |
|
429 | RUN \ | |
429 | echo "**** cleanup ****" && \ |
|
430 | echo "**** cleanup ****" && \ | |
430 | apt-get remove -y $CLEANUP_DEPS && \ |
|
431 | apt-get remove -y $CLEANUP_DEPS && \ | |
431 | apt-get autoclean -y && \ |
|
432 | apt-get autoclean -y && \ | |
432 | rm -rf /tmp/* && \ |
|
433 | rm -rf /tmp/* && \ | |
433 | rm -rf /home/$RC_USER/.cache/pip && \ |
|
434 | rm -rf /home/$RC_USER/.cache/pip && \ | |
434 | rm -f /home/$RC_USER/.rccontrol/cache/RhodeCode-* && \ |
|
435 | rm -f /home/$RC_USER/.rccontrol/cache/RhodeCode-* && \ | |
435 | rm -rf /var/lib/apt/lists/* && \ |
|
436 | rm -rf /var/lib/apt/lists/* && \ | |
436 | rm -rf /var/cache/apk/* && \ |
|
437 | rm -rf /var/cache/apk/* && \ | |
437 | rm -f ${SUPERVISOR_CONF} && \ |
|
438 | rm -f ${SUPERVISOR_CONF} && \ | |
438 | echo "Done cleanup" |
|
439 | echo "Done cleanup" | |
439 |
|
440 | |||
440 | RUN \ |
|
441 | RUN \ | |
441 | echo "**** cleanup source ****" && \ |
|
442 | echo "**** cleanup source ****" && \ | |
442 | rm -rf /home/$RC_USER/*.sh && \ |
|
443 | rm -rf /home/$RC_USER/*.sh && \ | |
443 | rm -rf /home/$RC_USER/rhodecode-vcsserver && \ |
|
444 | rm -rf /home/$RC_USER/rhodecode-vcsserver && \ | |
444 | rm -rf /home/$RC_USER/rhodecode-enterprise-ce && \ |
|
445 | rm -rf /home/$RC_USER/rhodecode-enterprise-ce && \ | |
445 | rm -rf /home/$RC_USER/rhodecode-enterprise-ee && \ |
|
446 | rm -rf /home/$RC_USER/rhodecode-enterprise-ee && \ | |
446 | echo "Done cleanup source" |
|
447 | echo "Done cleanup source" | |
447 |
|
448 | |||
448 | # copy entrypoints |
|
449 | # copy entrypoints | |
449 | COPY entrypoints.d/entrypoint.sh /opt/entrypoints.d/entrypoint.sh |
|
450 | COPY entrypoints.d/entrypoint.sh /opt/entrypoints.d/entrypoint.sh | |
450 |
|
451 | |||
451 | RUN chmod +x /opt/entrypoints.d/entrypoint.sh |
|
452 | RUN chmod +x /opt/entrypoints.d/entrypoint.sh | |
452 |
|
453 | |||
453 | # config volume |
|
454 | # config volume | |
454 | VOLUME /etc/rhodecode/conf |
|
455 | VOLUME /etc/rhodecode/conf | |
455 |
|
456 | |||
456 | # repo store volume |
|
457 | # repo store volume | |
457 | VOLUME /var/opt/rhodecode_repo_store |
|
458 | VOLUME /var/opt/rhodecode_repo_store | |
458 |
|
459 | |||
459 | # data volume |
|
460 | # data volume | |
460 | VOLUME /var/opt/rhodecode_data |
|
461 | VOLUME /var/opt/rhodecode_data | |
461 |
|
462 | |||
462 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] |
|
463 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] | |
463 |
|
464 | |||
464 | # Tag images with commit references... |
|
465 | # Tag images with commit references... | |
465 | ARG VCS_SHA="stable" |
|
466 | ARG VCS_SHA="stable" | |
466 | ARG CE_SHA="stable" |
|
467 | ARG CE_SHA="stable" | |
467 | ARG EE_SHA="stable" |
|
468 | ARG EE_SHA="stable" | |
468 |
|
469 | |||
469 | LABEL org.label-schema.vcs-ref.vcsserver.ce="$VCS_SHA" org.label-schema.vcs-ref.rhodecode.ce="$CE_SHA" org.label-schema.vcs-ref.rhodecode.ee="$EE_SHA" |
|
470 | LABEL org.label-schema.vcs-ref.vcsserver.ce="$VCS_SHA" org.label-schema.vcs-ref.rhodecode.ce="$CE_SHA" org.label-schema.vcs-ref.rhodecode.ee="$EE_SHA" | |
470 |
|
471 | |||
471 | # compose can override this |
|
472 | # compose can override this | |
472 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/rhodecode.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf_rc.py" ] |
|
473 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/rhodecode.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf_rc.py" ] |
General Comments 0
You need to be logged in to leave comments.
Login now