Show More
@@ -0,0 +1,412 b'' | |||||
|
1 | # virtualenv-install | |||
|
2 | ||||
|
3 | FROM ubuntu:22.04 | |||
|
4 | # Using 22.04 LTS Release | |||
|
5 | ||||
|
6 | ARG TZ="UTC" | |||
|
7 | ARG LOCALE_TYPE=en_US.UTF-8 | |||
|
8 | ARG RHODECODE_TYPE=Enterprise | |||
|
9 | ||||
|
10 | ARG RHODECODE_VERSION=4.28.0 | |||
|
11 | ||||
|
12 | ARG RHODECODE_DB=sqlite | |||
|
13 | ARG RHODECODE_USER_NAME=admin | |||
|
14 | ARG RHODECODE_USER_PASS=secret4 | |||
|
15 | ARG RHODECODE_USER_EMAIL=admin@server.local | |||
|
16 | ||||
|
17 | # env are runtime | |||
|
18 | ENV \ | |||
|
19 | TZ=${TZ} \ | |||
|
20 | LOCALE_TYPE=${LOCALE_TYPE} \ | |||
|
21 | \ | |||
|
22 | ## Define type we build, and the instance we'll create | |||
|
23 | RHODECODE_TYPE=${RHODECODE_TYPE} \ | |||
|
24 | RC_TYPE_ID=enterprise-1 \ | |||
|
25 | \ | |||
|
26 | ## SETUP ARGS FOR INSTALLATION ## | |||
|
27 | ## set version we build on, get from .env or set default ver | |||
|
28 | RHODECODE_VERSION=${RHODECODE_VERSION} \ | |||
|
29 | \ | |||
|
30 | ## set DB, default sqlite | |||
|
31 | RHODECODE_DB=${RHODECODE_DB} \ | |||
|
32 | \ | |||
|
33 | ## set app bootstrap required data | |||
|
34 | RHODECODE_USER_NAME=${RHODECODE_USER_NAME} \ | |||
|
35 | RHODECODE_USER_PASS=${RHODECODE_USER_PASS} \ | |||
|
36 | RHODECODE_USER_EMAIL=${RHODECODE_USER_EMAIL} \ | |||
|
37 | \ | |||
|
38 | RC_USER=rhodecode \ | |||
|
39 | \ | |||
|
40 | # SVN CONFIG | |||
|
41 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf \ | |||
|
42 | MOD_DAV_SVN_PORT=8090 \ | |||
|
43 | MOD_DAV_CORE_MODULES_DIR=/home/$RC_USER/apache2/modules \ | |||
|
44 | MOD_DAV_SVN_MODULE=/home/rhodecode/subversion/libexec/mod_dav_svn.so \ | |||
|
45 | \ | |||
|
46 | # SSHD CONFIG | |||
|
47 | SSHD_CONF_FILE=/etc/rhodecode/sshd_config \ | |||
|
48 | \ | |||
|
49 | SHARED_CONF_DIR=/etc/rhodecode/conf \ | |||
|
50 | BUILD_CONF=/etc/rhodecode/conf_build \ | |||
|
51 | BUILD_BIN_DIR=/usr/local/bin/rhodecode_bin \ | |||
|
52 | RHODECODE_DATA_DIR=/var/opt/rhodecode_data \ | |||
|
53 | RHODECODE_REPO_DIR=/var/opt/rhodecode_repo_store \ | |||
|
54 | RHODECODE_HTTP_PORT=10020 \ | |||
|
55 | RHODECODE_VCS_PORT=10010 \ | |||
|
56 | RHODECODE_HOST=0.0.0.0 \ | |||
|
57 | RHODECODE_VCS_HOST=127.0.0.1 | |||
|
58 | ||||
|
59 | ||||
|
60 | ENV SSH_DEPS \ | |||
|
61 | openssh-server | |||
|
62 | ||||
|
63 | ENV SVN_DEPS \ | |||
|
64 | "" | |||
|
65 | ||||
|
66 | ENV SVN_DEV_DEPS \ | |||
|
67 | libtool automake autoconf libapr1-dev libaprutil1-dev libdb5.3-dev liblz4-dev libpcre3-dev \ | |||
|
68 | libperl-dev libserf-dev libneon27-gnutls-dev libutf8proc-dev py3c-dev gettext tcl-dev | |||
|
69 | ||||
|
70 | ENV PYTHON_DEPS \ | |||
|
71 | python2 | |||
|
72 | ENV PYTHON_DEV_DEPS \ | |||
|
73 | build-essential libpq-dev libmysqlclient-dev libxmlsec1-dev libxml2-dev libsqlite3-dev liblzma-dev libzmq3-dev \ | |||
|
74 | libldap2-dev libsasl2-dev libcurl4-openssl-dev libssl-dev libxslt-dev python2-dev | |||
|
75 | ||||
|
76 | ENV EXTRA_DEPS \ | |||
|
77 | vim pkg-config openssl libbz2-1.0 libbz2-dev sqlite3 cpanminus libapr1 npm nodejs | |||
|
78 | ||||
|
79 | # define which deps from the above should be removed in cleanup phase | |||
|
80 | ENV CLEANUP_DEPS \ | |||
|
81 | $PYTHON_DEV_DEPS $SVN_DEV_DEPS | |||
|
82 | ENV CLEANUP_DEPS "" | |||
|
83 | ||||
|
84 | RUN \ | |||
|
85 | echo "** install base packages **" && \ | |||
|
86 | set -eux; \ | |||
|
87 | \ | |||
|
88 | savedAptMark="$(apt-mark showmanual)"; \ | |||
|
89 | apt-get update; \ | |||
|
90 | DEBIAN_FRONTEND="noninteractive" \ | |||
|
91 | apt-get install -y --no-install-recommends \ | |||
|
92 | tini \ | |||
|
93 | bash \ | |||
|
94 | binutils \ | |||
|
95 | tzdata \ | |||
|
96 | locales \ | |||
|
97 | openssl \ | |||
|
98 | curl \ | |||
|
99 | sudo \ | |||
|
100 | gosu \ | |||
|
101 | bzip2 unzip \ | |||
|
102 | ca-certificates \ | |||
|
103 | $PYTHON_DEPS $PYTHON_DEV_DEPS\ | |||
|
104 | $SSH_DEPS \ | |||
|
105 | $SVN_DEPS $SVN_DEV_DEPS\ | |||
|
106 | $EXTRA_DEPS \ | |||
|
107 | ; \ | |||
|
108 | rm -rf /var/lib/apt/lists/*; | |||
|
109 | ||||
|
110 | RUN \ | |||
|
111 | echo "** Configure the python executable for py2/3 compat **" && \ | |||
|
112 | IS_PY=$(which python3 || which python2) && \ | |||
|
113 | if [ -n $IS_PY ] ; then ln -s $IS_PY /usr/bin/python ; fi | |||
|
114 | ||||
|
115 | RUN \ | |||
|
116 | echo "** Configure the locales **" && \ | |||
|
117 | sed -i "s/^# ${LOCALE_TYPE}/${LOCALE_TYPE}/g" /etc/locale.gen && \ | |||
|
118 | locale-gen | |||
|
119 | ||||
|
120 | # locale-archive is a fix for old nix glibc2.26 locales available | |||
|
121 | ENV \ | |||
|
122 | #LOCALE_ARCHIVE=/var/opt/locale-archive \ | |||
|
123 | LANG=${LOCALE_TYPE} \ | |||
|
124 | LANGUAGE=${LOCALE_TYPE} \ | |||
|
125 | LC_ALL=${LOCALE_TYPE} | |||
|
126 | ||||
|
127 | # configure the system user | |||
|
128 | # explicitly set uid/gid to guarantee that it won't change in the future | |||
|
129 | # the values 999:999 are identical to the current user/group id assigned | |||
|
130 | RUN \ | |||
|
131 | echo "** Create system user $RC_USER **" && \ | |||
|
132 | groupadd --system --gid 999 $RC_USER && \ | |||
|
133 | useradd --system --gid $RC_USER --uid 999 --shell /bin/bash $RC_USER && \ | |||
|
134 | usermod -G $RC_USER $RC_USER | |||
|
135 | ||||
|
136 | # Add new user docker to sudo group | |||
|
137 | RUN \ | |||
|
138 | adduser $RC_USER sudo | |||
|
139 | ||||
|
140 | # Ensure sudo group users are not | |||
|
141 | # asked for a password when using | |||
|
142 | # sudo command by ammending sudoers file | |||
|
143 | RUN \ | |||
|
144 | echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | |||
|
145 | ||||
|
146 | # set the defult bash shell | |||
|
147 | SHELL ["/bin/bash", "-c"] | |||
|
148 | ||||
|
149 | # Fix and set a timezone | |||
|
150 | RUN \ | |||
|
151 | echo "** configure the timezone **" && \ | |||
|
152 | rm /etc/localtime && cp /usr/share/zoneinfo/$TZ /etc/localtime && \ | |||
|
153 | echo $TZ > /etc/timezone | |||
|
154 | ||||
|
155 | ||||
|
156 | RUN \ | |||
|
157 | echo "** prepare rhodecode store and cache **" && \ | |||
|
158 | install -d -m 0755 -o $RC_USER -g $RC_USER /opt/rhodecode && \ | |||
|
159 | 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 /usr/local/bin/rhodecode_bin && \ | |||
|
161 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_REPO_DIR && \ | |||
|
162 | install -d -m 0755 -o $RC_USER -g $RC_USER $RHODECODE_DATA_DIR && \ | |||
|
163 | install -d -m 0755 -o $RC_USER -g $RC_USER $BUILD_CONF && \ | |||
|
164 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-vcsserver && \ | |||
|
165 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ce && \ | |||
|
166 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/rhodecode-enterprise-ee && \ | |||
|
167 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/ && \ | |||
|
168 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol && \ | |||
|
169 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/cache && \ | |||
|
170 | install -d -m 0755 -o $RC_USER -g $RC_USER /home/$RC_USER/.rccontrol/bootstrap && \ | |||
|
171 | install -d -m 0700 -o $RC_USER -g $RC_USER /home/$RC_USER/.ssh | |||
|
172 | ||||
|
173 | RUN \ | |||
|
174 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' >> /root/.bash_profile && \ | |||
|
175 | echo 'export PS1=">> rhodecode-docker-$RHODECODE_VERSION \W \$ "' >> /home/$RC_USER/.bash_profile | |||
|
176 | ||||
|
177 | # expose our custom sshd config | |||
|
178 | COPY service/sshd/sshd_config $SSHD_CONF_FILE | |||
|
179 | ||||
|
180 | # Copy artifacts | |||
|
181 | #COPY --chown=$RC_USER:$RC_USER .cache/locale-archive /var/opt/ | |||
|
182 | COPY --chown=$RC_USER:$RC_USER config/_shared/rhodecode_enterprise.license /home/$RC_USER/.rccontrol/bootstrap/ | |||
|
183 | COPY --chown=$RC_USER:$RC_USER service/rhodecode/bootstrap/* /home/$RC_USER/.rccontrol/bootstrap/ | |||
|
184 | COPY --chown=$RC_USER:$RC_USER .source/ /home/$RC_USER/ | |||
|
185 | ||||
|
186 | # change to non-root user for RUN commands | |||
|
187 | USER $RC_USER | |||
|
188 | WORKDIR /home/$RC_USER | |||
|
189 | ||||
|
190 | ENV \ | |||
|
191 | VENV_PATH=/home/$RC_USER/venv | |||
|
192 | ||||
|
193 | ENV \ | |||
|
194 | PIP_EXECUTABLE=$VENV_PATH/bin/pip2.7 \ | |||
|
195 | # make venv application scripts visible | |||
|
196 | PATH=$VENV_PATH/bin:/home/$RC_USER/.local/bin:$PATH | |||
|
197 | ||||
|
198 | RUN \ | |||
|
199 | echo "** get pip **" && \ | |||
|
200 | curl -sSL https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py && \ | |||
|
201 | /usr/bin/python2.7 get-pip.py \ | |||
|
202 | --disable-pip-version-check \ | |||
|
203 | --no-cache-dir \ | |||
|
204 | --no-compile && \ | |||
|
205 | rm get-pip.py | |||
|
206 | ||||
|
207 | RUN /home/$RC_USER/.local/bin/pip install --user virtualenv | |||
|
208 | RUN /home/$RC_USER/.local/bin/virtualenv --pip "19.3.1" --setuptools "41.6.0" --python="/usr/bin/python2.7" $VENV_PATH | |||
|
209 | ## Install any needed packages specified in requirements.txt | |||
|
210 | RUN $PIP_EXECUTABLE install --upgrade "setuptools_scm<6.0.0" | |||
|
211 | ||||
|
212 | #swig install | |||
|
213 | ||||
|
214 | ENV \ | |||
|
215 | PYTHON=$VENV_PATH/bin/python2 \ | |||
|
216 | RC_SWIG_VERSION=3.0.12 \ | |||
|
217 | PATH=/usr/local/bin/:$PATH | |||
|
218 | ||||
|
219 | RUN \ | |||
|
220 | echo "** install swig packages $RC_SWIG_VERSION **" && \ | |||
|
221 | curl -L https://sourceforge.net/projects/swig/files/swig/swig-$RC_SWIG_VERSION/swig-$RC_SWIG_VERSION.tar.gz/download -o swig.tar.gz && \ | |||
|
222 | tar xfz swig.tar.gz && rm swig.tar.gz && \ | |||
|
223 | cd swig-$RC_SWIG_VERSION && \ | |||
|
224 | ./configure --with-python=$PYTHON && \ | |||
|
225 | make && \ | |||
|
226 | sudo make install && \ | |||
|
227 | cd ../ && sudo rm -rf swig-$RC_SWIG_VERSION | |||
|
228 | ||||
|
229 | # GIT Install | |||
|
230 | ENV \ | |||
|
231 | RC_GIT_VER=2.39.2 \ | |||
|
232 | # make git scripts visible | |||
|
233 | PATH=/home/$RC_USER/git/bin:$PATH | |||
|
234 | ||||
|
235 | RUN \ | |||
|
236 | echo "** install git packages $RC_GIT_VER **" && \ | |||
|
237 | curl -L https://www.kernel.org/pub/software/scm/git/git-$RC_GIT_VER.tar.gz -o git.tar.gz && \ | |||
|
238 | tar xfz git.tar.gz && rm git.tar.gz && \ | |||
|
239 | cd git-$RC_GIT_VER && \ | |||
|
240 | ./configure --prefix=/home/$RC_USER/git && \ | |||
|
241 | make NO_GETTEXT=yes NO_MSGFMT=yes && \ | |||
|
242 | sudo make install && \ | |||
|
243 | cd ../ && sudo rm -rf git-$RC_GIT_VER | |||
|
244 | ||||
|
245 | RUN \ | |||
|
246 | echo "** install git symlinks **" && \ | |||
|
247 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ | |||
|
248 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/git && \ | |||
|
249 | ln -s /home/$RC_USER/git/bin/git $BUILD_BIN_DIR/vcs_bin/git | |||
|
250 | ||||
|
251 | # Apache2 install | |||
|
252 | ENV \ | |||
|
253 | RC_APACHE2_VER=2.4.56 \ | |||
|
254 | # make apache scripts visible | |||
|
255 | PATH=/home/$RC_USER/apache2/bin:$PATH | |||
|
256 | ||||
|
257 | RUN \ | |||
|
258 | echo "** install Apache packages $RC_SVN_VER **" && \ | |||
|
259 | curl -L https://archive.apache.org/dist/httpd/httpd-$RC_APACHE2_VER.tar.gz -o apache2.tar.gz && \ | |||
|
260 | tar xfz apache2.tar.gz && rm apache2.tar.gz && \ | |||
|
261 | cd httpd-$RC_APACHE2_VER && \ | |||
|
262 | ./configure --prefix=/home/$RC_USER/apache2 --enable-mods-shared=reallyall --enable-dav --enable-authn-anon && \ | |||
|
263 | make && \ | |||
|
264 | make install && \ | |||
|
265 | cd ../ && sudo rm -rf httpd-$RC_APACHE2_VER | |||
|
266 | ||||
|
267 | # custom SVN virtualhost | |||
|
268 | COPY \ | |||
|
269 | service/svn/virtualhost.conf /home/$RC_USER/apache2/conf/virtualhost.conf | |||
|
270 | ||||
|
271 | RUN \ | |||
|
272 | echo "**** Apache config ****" && \ | |||
|
273 | sed -i "s/Listen 80/Listen ${MOD_DAV_SVN_PORT}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |||
|
274 | 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 && \ | |||
|
275 | sed -i "s/User daemon/User ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |||
|
276 | sed -i "s/Group daemon/Group ${RC_USER}/g" /home/$RC_USER/apache2/conf/httpd.conf && \ | |||
|
277 | sed -i "s/#ServerName www.example.com:80/ServerName ${HOSTNAME}/g" /home/$RC_USER/apache2/conf/httpd.conf | |||
|
278 | ||||
|
279 | # Subversion install | |||
|
280 | # https://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/swig/INSTALL | |||
|
281 | ||||
|
282 | ENV \ | |||
|
283 | RC_SVN_VER=1.14.2 \ | |||
|
284 | SVN_PREFIX=/home/$RC_USER/subversion \ | |||
|
285 | # make svn scripts visible | |||
|
286 | PATH=/home/$RC_USER/subversion/bin:$PATH | |||
|
287 | ||||
|
288 | ||||
|
289 | RUN \ | |||
|
290 | echo "** install svn packages $RC_SVN_VER **" && \ | |||
|
291 | curl -L https://downloads.apache.org/subversion/subversion-$RC_SVN_VER.tar.gz -o subversion.tar.gz && \ | |||
|
292 | tar xfz subversion.tar.gz && rm subversion.tar.gz && \ | |||
|
293 | cd subversion-$RC_SVN_VER && \ | |||
|
294 | ./autogen.sh && \ | |||
|
295 | ./configure --prefix=$SVN_PREFIX --with-apxs=/home/$RC_USER/apache2/bin/apxs --enable-mod-activation --with-swig=/usr/local/bin/swig && \ | |||
|
296 | make && \ | |||
|
297 | sudo make install && \ | |||
|
298 | sudo make clean-swig-py && \ | |||
|
299 | sudo make swig-py swig_pydir=$VENV_PATH/lib/python2.7/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/python2.7/site-packages/svn && \ | |||
|
300 | sudo make install-swig-py swig_pydir=$VENV_PATH/lib/python2.7/site-packages/libsvn swig_pydir_extra=$VENV_PATH/lib/python2.7/site-packages/svn && \ | |||
|
301 | sudo ldconfig -v && \ | |||
|
302 | cd ../ && sudo rm -rf subversion-$RC_SVN_VER | |||
|
303 | ||||
|
304 | RUN \ | |||
|
305 | echo "** install svn symlinks **" && \ | |||
|
306 | mkdir -p $BUILD_BIN_DIR/vcs_bin && \ | |||
|
307 | sudo chown $RC_USER:$RC_USER /home/$RC_USER/subversion && \ | |||
|
308 | echo $(strings $MOD_DAV_SVN_MODULE | grep 'Powered by') > $BUILD_BIN_DIR/vcs_bin/mod_dav_svn.version && \ | |||
|
309 | ln -s /home/$RC_USER/subversion/svn $BUILD_BIN_DIR/vcs_bin/svn && \ | |||
|
310 | ln -s /home/$RC_USER/subversion/svnadmin $BUILD_BIN_DIR/vcs_bin/svnadmin && \ | |||
|
311 | ln -s /home/$RC_USER/subversion/svnbench $BUILD_BIN_DIR/vcs_bin/svnbench && \ | |||
|
312 | ln -s /home/$RC_USER/subversion/svndumpfilter $BUILD_BIN_DIR/vcs_bin/svndumpfilter && \ | |||
|
313 | ln -s /home/$RC_USER/subversion/svnfsfs $BUILD_BIN_DIR/vcs_bin/svnfsfs && \ | |||
|
314 | ln -s /home/$RC_USER/subversion/svnlook $BUILD_BIN_DIR/vcs_bin/svnlook && \ | |||
|
315 | ln -s /home/$RC_USER/subversion/svnmucc $BUILD_BIN_DIR/vcs_bin/svnmucc && \ | |||
|
316 | ln -s /home/$RC_USER/subversion/svnversion $BUILD_BIN_DIR/vcs_bin/svnversion && \ | |||
|
317 | ln -s /home/$RC_USER/subversion/svnsync $BUILD_BIN_DIR/vcs_bin/svnsync && \ | |||
|
318 | ln -s /home/$RC_USER/subversion/svnserve $BUILD_BIN_DIR/vcs_bin/svnserve && \ | |||
|
319 | ln -s /home/$RC_USER/subversion/svnrdump $BUILD_BIN_DIR/vcs_bin/svnrdump | |||
|
320 | ||||
|
321 | #TODO: compile libgit2 | |||
|
322 | #https://www.pygit2.org/install.html#advanced | |||
|
323 | #ENV \ | |||
|
324 | # RC_LIBGIT2_VER=1.14.2 \ | |||
|
325 | # curl -L https://github.com/libgit2/libgit2/archive/refs/tags/v$RC_LIBGIT2_VER.tar.gz -o libgit2.tar.gz | |||
|
326 | # tar xzf libgit2.tar.gz && rm libgit2.tar.gz | |||
|
327 | # cd libgit2-$RC_LIBGIT2_VER/ | |||
|
328 | # cmake . | |||
|
329 | # make | |||
|
330 | # sudo make install \ | |||
|
331 | ||||
|
332 | RUN \ | |||
|
333 | echo "** install vcsserver ${RHODECODE_VERSION} **" && \ | |||
|
334 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |||
|
335 | -r /home/$RC_USER/rhodecode-vcsserver/requirements_pinned.txt \ | |||
|
336 | -r /home/$RC_USER/rhodecode-vcsserver/requirements.txt && \ | |||
|
337 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-vcsserver | |||
|
338 | ||||
|
339 | RUN \ | |||
|
340 | echo "** copy config of vcsserver ${RHODECODE_VERSION} **" && \ | |||
|
341 | VCSSERVER_PATH=/home/$RC_USER/rhodecode-vcsserver && \ | |||
|
342 | rm -rf $BUILD_BIN_DIR/vcs_bin && \ | |||
|
343 | cp -rv --preserve=links $VENV_PATH/bin $BUILD_BIN_DIR/vcs_bin && \ | |||
|
344 | cp -v ${VCSSERVER_PATH}/configs/production.ini $BUILD_CONF/vcsserver.ini && \ | |||
|
345 | cp -v ${VCSSERVER_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_vcs.py && \ | |||
|
346 | echo "Done copy config of vcsserver" | |||
|
347 | ||||
|
348 | RUN \ | |||
|
349 | curl -L $(cat rhodecode-enterprise-ce/requirements.txt | grep rhodecode-tools-ce) -o rhodecode-tools-ce.tar.gz && \ | |||
|
350 | tar xfz rhodecode-tools-ce.tar.gz && rm rhodecode-tools-ce.tar.gz && \ | |||
|
351 | cd rhodecode_tools-* && $PIP_EXECUTABLE install -r requirements_pinned.txt -r requirements.txt && \ | |||
|
352 | cd ../ && rm -rf rhodecode_tools-* | |||
|
353 | ||||
|
354 | RUN \ | |||
|
355 | echo "** install rhodecode ${RHODECODE_VERSION} **" && \ | |||
|
356 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |||
|
357 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements_pinned.txt \ | |||
|
358 | -r /home/$RC_USER/rhodecode-enterprise-ce/requirements.txt && \ | |||
|
359 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ce && \ | |||
|
360 | $PIP_EXECUTABLE install --disable-pip-version-check --trusted-host pypi.python.org --no-cache-dir \ | |||
|
361 | -r /home/$RC_USER/rhodecode-enterprise-ee/requirements.txt && \ | |||
|
362 | $PIP_EXECUTABLE install /home/$RC_USER/rhodecode-enterprise-ee | |||
|
363 | ||||
|
364 | RUN \ | |||
|
365 | echo "** copy config of rhodecode ${RHODECODE_VERSION} **" && \ | |||
|
366 | RHODECODE_PATH=/home/$RC_USER/rhodecode-enterprise-ee && \ | |||
|
367 | rm -rf $BUILD_BIN_DIR/bin && \ | |||
|
368 | cp -rv --preserve=links $VENV_PATH/bin $BUILD_BIN_DIR/bin && \ | |||
|
369 | cp -v ${RHODECODE_PATH}/configs/production.ini $BUILD_CONF/rhodecode.ini && \ | |||
|
370 | cp -v ${RHODECODE_PATH}/configs/gunicorn_config.py $BUILD_CONF/gunicorn_conf_rc.py && \ | |||
|
371 | #mkdir -p $RHODECODE_DATA_DIR/static && cp -r /home/$RC_USER/.rccontrol/enterprise-1/profile/etc/static/* $RHODECODE_DATA_DIR/static/ && \ | |||
|
372 | echo "Done copy config of rhodecode" | |||
|
373 | ||||
|
374 | ||||
|
375 | USER root | |||
|
376 | ||||
|
377 | RUN \ | |||
|
378 | echo "**** cleanup ****" && \ | |||
|
379 | apt-get remove -y $CLEANUP_DEPS && \ | |||
|
380 | apt-get autoclean -y && \ | |||
|
381 | rm -rf /tmp/* && \ | |||
|
382 | rm -f /home/$RC_USER/.rccontrol/cache/RhodeCode-* && \ | |||
|
383 | rm -rf /var/lib/apt/lists/* && \ | |||
|
384 | rm -rf /var/cache/apk/* && \ | |||
|
385 | rm -f ${SUPERVISOR_CONF} && \ | |||
|
386 | echo "Done cleanup" | |||
|
387 | ||||
|
388 | RUN \ | |||
|
389 | echo "**** cleanup source ****" && \ | |||
|
390 | rm -rf /home/$RC_USER/rhodecode-vcsserver && \ | |||
|
391 | rm -rf /home/$RC_USER/rhodecode-enterprise-ce && \ | |||
|
392 | rm -rf /home/$RC_USER/rhodecode-enterprise-ee && \ | |||
|
393 | echo "Done cleanup source" | |||
|
394 | ||||
|
395 | # copy entrypoints | |||
|
396 | COPY entrypoints.d/entrypoint.sh /opt/entrypoints.d/entrypoint.sh | |||
|
397 | ||||
|
398 | RUN chmod +x /opt/entrypoints.d/entrypoint.sh | |||
|
399 | ||||
|
400 | # config volume | |||
|
401 | VOLUME /etc/rhodecode/conf | |||
|
402 | ||||
|
403 | # repo store volume | |||
|
404 | VOLUME /var/opt/rhodecode_repo_store | |||
|
405 | ||||
|
406 | # data volume | |||
|
407 | VOLUME /var/opt/rhodecode_data | |||
|
408 | ||||
|
409 | ENTRYPOINT ["/opt/entrypoints.d/entrypoint.sh"] | |||
|
410 | ||||
|
411 | # compose can override this | |||
|
412 | CMD [ "$BUILD_BIN_DIR/bin/gunicorn", "--error-logfile=-", "--paster=/etc/rhodecode/conf_build/rhodecode.ini", "--config=/etc/rhodecode/conf_build/gunicorn_conf_rc.py" ] |
@@ -1,7 +1,8 b'' | |||||
|
1 | # compose file to build 4.X.X series | |||
|
2 | ||||
1 | volumes: |
|
3 | volumes: | |
2 | bashhistory: |
|
4 | bashhistory: | |
3 |
|
5 | |||
4 |
|
||||
5 | services: |
|
6 | services: | |
6 |
|
7 | |||
7 | rhodecode: |
|
8 | rhodecode: | |
@@ -14,7 +15,7 b' services:' | |||||
14 |
|
15 | |||
15 | build: |
|
16 | build: | |
16 | context: . |
|
17 | context: . | |
17 |
dockerfile: service/rhodecode/rhodecode_ |
|
18 | dockerfile: service/rhodecode/rhodecode_4.dockerfile | |
18 |
|
19 | |||
19 | vcsserver: |
|
20 | vcsserver: | |
20 | environment: |
|
21 | environment: | |
@@ -25,28 +26,28 b' services:' | |||||
25 |
|
26 | |||
26 | build: |
|
27 | build: | |
27 | context: . |
|
28 | context: . | |
28 |
dockerfile: service/rhodecode/rhodecode_ |
|
29 | dockerfile: service/rhodecode/rhodecode_4.dockerfile | |
29 |
|
30 | |||
30 | celery: |
|
31 | celery: | |
31 |
|
32 | |||
32 | build: |
|
33 | build: | |
33 | context: . |
|
34 | context: . | |
34 |
dockerfile: service/rhodecode/rhodecode_ |
|
35 | dockerfile: service/rhodecode/rhodecode_4.dockerfile | |
35 |
|
36 | |||
36 | celery-beat: |
|
37 | celery-beat: | |
37 |
|
38 | |||
38 | build: |
|
39 | build: | |
39 | context: . |
|
40 | context: . | |
40 |
dockerfile: service/rhodecode/rhodecode_ |
|
41 | dockerfile: service/rhodecode/rhodecode_4.dockerfile | |
41 |
|
42 | |||
42 | svn: |
|
43 | svn: | |
43 |
|
44 | |||
44 | build: |
|
45 | build: | |
45 | context: . |
|
46 | context: . | |
46 |
dockerfile: service/rhodecode/rhodecode_ |
|
47 | dockerfile: service/rhodecode/rhodecode_4.dockerfile | |
47 |
|
48 | |||
48 | sshd: |
|
49 | sshd: | |
49 |
|
50 | |||
50 | build: |
|
51 | build: | |
51 | context: . |
|
52 | context: . | |
52 |
dockerfile: service/rhodecode/rhodecode_ |
|
53 | dockerfile: service/rhodecode/rhodecode_4.dockerfile |
@@ -14,7 +14,7 b' services:' | |||||
14 |
|
14 | |||
15 | build: |
|
15 | build: | |
16 | context: . |
|
16 | context: . | |
17 |
dockerfile: service/rhodecode/rhodecode_ |
|
17 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile | |
18 |
|
18 | |||
19 | vcsserver: |
|
19 | vcsserver: | |
20 | environment: |
|
20 | environment: | |
@@ -25,28 +25,28 b' services:' | |||||
25 |
|
25 | |||
26 | build: |
|
26 | build: | |
27 | context: . |
|
27 | context: . | |
28 |
dockerfile: service/rhodecode/rhodecode_ |
|
28 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile | |
29 |
|
29 | |||
30 | celery: |
|
30 | celery: | |
31 |
|
31 | |||
32 | build: |
|
32 | build: | |
33 | context: . |
|
33 | context: . | |
34 |
dockerfile: service/rhodecode/rhodecode_ |
|
34 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile | |
35 |
|
35 | |||
36 | celery-beat: |
|
36 | celery-beat: | |
37 |
|
37 | |||
38 | build: |
|
38 | build: | |
39 | context: . |
|
39 | context: . | |
40 |
dockerfile: service/rhodecode/rhodecode_ |
|
40 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile | |
41 |
|
41 | |||
42 | svn: |
|
42 | svn: | |
43 |
|
43 | |||
44 | build: |
|
44 | build: | |
45 | context: . |
|
45 | context: . | |
46 |
dockerfile: service/rhodecode/rhodecode_ |
|
46 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile | |
47 |
|
47 | |||
48 | sshd: |
|
48 | sshd: | |
49 |
|
49 | |||
50 | build: |
|
50 | build: | |
51 | context: . |
|
51 | context: . | |
52 |
dockerfile: service/rhodecode/rhodecode_ |
|
52 | dockerfile: service/rhodecode/rhodecode_4_source.dockerfile |
@@ -14,7 +14,7 b' services:' | |||||
14 |
|
14 | |||
15 | build: |
|
15 | build: | |
16 | context: . |
|
16 | context: . | |
17 |
dockerfile: service/rhodecode/rhodecode_ |
|
17 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile | |
18 |
|
18 | |||
19 | vcsserver: |
|
19 | vcsserver: | |
20 | environment: |
|
20 | environment: | |
@@ -25,28 +25,28 b' services:' | |||||
25 |
|
25 | |||
26 | build: |
|
26 | build: | |
27 | context: . |
|
27 | context: . | |
28 |
dockerfile: service/rhodecode/rhodecode_ |
|
28 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile | |
29 |
|
29 | |||
30 | celery: |
|
30 | celery: | |
31 |
|
31 | |||
32 | build: |
|
32 | build: | |
33 | context: . |
|
33 | context: . | |
34 |
dockerfile: service/rhodecode/rhodecode_ |
|
34 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile | |
35 |
|
35 | |||
36 | celery-beat: |
|
36 | celery-beat: | |
37 |
|
37 | |||
38 | build: |
|
38 | build: | |
39 | context: . |
|
39 | context: . | |
40 |
dockerfile: service/rhodecode/rhodecode_ |
|
40 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile | |
41 |
|
41 | |||
42 | svn: |
|
42 | svn: | |
43 |
|
43 | |||
44 | build: |
|
44 | build: | |
45 | context: . |
|
45 | context: . | |
46 |
dockerfile: service/rhodecode/rhodecode_ |
|
46 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile | |
47 |
|
47 | |||
48 | sshd: |
|
48 | sshd: | |
49 |
|
49 | |||
50 | build: |
|
50 | build: | |
51 | context: . |
|
51 | context: . | |
52 |
dockerfile: service/rhodecode/rhodecode_ |
|
52 | dockerfile: service/rhodecode/rhodecode_4_venv.dockerfile |
@@ -1,7 +1,8 b'' | |||||
|
1 | # compose file to build 5.X.X series | |||
|
2 | ||||
1 | volumes: |
|
3 | volumes: | |
2 | bashhistory: |
|
4 | bashhistory: | |
3 |
|
5 | |||
4 |
|
||||
5 | services: |
|
6 | services: | |
6 |
|
7 | |||
7 | rhodecode: |
|
8 | rhodecode: |
@@ -1,4 +1,5 b'' | |||||
1 | # binary-install |
|
1 | # binary-rccontrol-install | |
|
2 | ||||
2 | FROM ubuntu:22.04 |
|
3 | FROM ubuntu:22.04 | |
3 | # Using 22.04 LTS Release |
|
4 | # Using 22.04 LTS Release | |
4 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> |
|
5 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> |
@@ -1,7 +1,8 b'' | |||||
1 | # source-install |
|
1 | # source-nix-install | |
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 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> | |||
5 |
|
6 | |||
6 | ARG TZ="UTC" |
|
7 | ARG TZ="UTC" | |
7 | ARG LOCALE_TYPE=en_US.UTF-8 |
|
8 | ARG LOCALE_TYPE=en_US.UTF-8 |
@@ -1,4 +1,4 b'' | |||||
1 | # virtualenv-install |
|
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 | |
@@ -41,7 +41,7 b' ENV \\' | |||||
41 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf \ |
|
41 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf \ | |
42 | MOD_DAV_SVN_PORT=8090 \ |
|
42 | MOD_DAV_SVN_PORT=8090 \ | |
43 | MOD_DAV_SVN_LOG_LEVEL=info \ |
|
43 | MOD_DAV_SVN_LOG_LEVEL=info \ | |
44 |
MOD_DAV_CORE_MODULES_DIR=/home/ |
|
44 | MOD_DAV_CORE_MODULES_DIR=/home/rhodecode/apache2/modules \ | |
45 | MOD_DAV_SVN_MODULE=/home/rhodecode/subversion/libexec/mod_dav_svn.so \ |
|
45 | MOD_DAV_SVN_MODULE=/home/rhodecode/subversion/libexec/mod_dav_svn.so \ | |
46 | \ |
|
46 | \ | |
47 | # SSHD CONFIG |
|
47 | # SSHD CONFIG |
General Comments 0
You need to be logged in to leave comments.
Login now