|
1 | 1 | # syntax=docker/dockerfile:1 |
2 | 2 | FROM ubuntu:24.04 |
3 | 3 |
|
4 | | -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
5 | | - build-essential \ |
6 | | - cgroup-lite \ |
7 | | - cppreference-doc-en-html \ |
8 | | - fp-compiler \ |
9 | | - git \ |
10 | | - ghc \ |
11 | | - libcap-dev \ |
12 | | - libcups2-dev \ |
13 | | - libffi-dev \ |
14 | | - libpq-dev \ |
15 | | - libyaml-dev \ |
16 | | - mono-mcs \ |
17 | | - openjdk-8-jdk-headless \ |
18 | | - php-cli \ |
19 | | - postgresql-client \ |
20 | | - pypy3 \ |
21 | | - python3-pip \ |
22 | | - python3.12 \ |
23 | | - python3.12-dev \ |
24 | | - rustc \ |
25 | | - shared-mime-info \ |
26 | | - sudo \ |
27 | | - wait-for-it \ |
28 | | - zip |
29 | | - |
30 | | -# Create cmsuser user with sudo privileges |
31 | | -RUN useradd -ms /bin/bash cmsuser && \ |
32 | | - usermod -aG sudo cmsuser |
33 | | -# Disable sudo password |
34 | | -RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers |
35 | | -# Set cmsuser as default user |
36 | | -USER cmsuser |
| 4 | +RUN \ |
| 5 | + export DEBIAN_FRONTEND=noninteractive ; \ |
| 6 | + apt update && \ |
| 7 | + apt upgrade -y && \ |
| 8 | + apt install -y \ |
| 9 | + build-essential \ |
| 10 | + cgroup-lite \ |
| 11 | + cppreference-doc-en-html \ |
| 12 | + curl \ |
| 13 | + fp-compiler \ |
| 14 | + git \ |
| 15 | + ghc \ |
| 16 | + libcap-dev \ |
| 17 | + libcups2-dev \ |
| 18 | + libffi-dev \ |
| 19 | + libpq-dev \ |
| 20 | + libyaml-dev \ |
| 21 | + mono-mcs \ |
| 22 | + openjdk-8-jdk-headless \ |
| 23 | + php-cli \ |
| 24 | + postgresql-client \ |
| 25 | + pypy3 \ |
| 26 | + python3-pip \ |
| 27 | + python3-venv \ |
| 28 | + python3.12 \ |
| 29 | + python3.12-dev \ |
| 30 | + rustc \ |
| 31 | + shared-mime-info \ |
| 32 | + sudo \ |
| 33 | + wait-for-it \ |
| 34 | + zip |
| 35 | + |
| 36 | +RUN \ |
| 37 | + export DEBIAN_FRONTEND=noninteractive ; \ |
| 38 | + echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/isolate.asc] http://www.ucw.cz/isolate/debian/ bookworm-isolate main" >/etc/apt/sources.list.d/isolate.list && \ |
| 39 | + curl https://www.ucw.cz/isolate/debian/signing-key.asc >/etc/apt/keyrings/isolate.asc && \ |
| 40 | + apt update && \ |
| 41 | + apt install -y isolate && \ |
| 42 | + sed -i 's@^cg_root .*@cg_root = /sys/fs/cgroup@' /etc/isolate |
37 | 43 |
|
38 | | -RUN mkdir /home/cmsuser/cms |
39 | | -COPY --chown=cmsuser:cmsuser requirements.txt dev-requirements.txt /home/cmsuser/cms/ |
| 44 | +# Create cmsuser user with sudo privileges and access to isolate |
| 45 | +RUN \ |
| 46 | + useradd -ms /bin/bash cmsuser && \ |
| 47 | + usermod -aG sudo cmsuser && \ |
| 48 | + usermod -aG isolate cmsuser && \ |
| 49 | + # Disable sudo password \ |
| 50 | + echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers |
40 | 51 |
|
41 | | -WORKDIR /home/cmsuser/cms |
| 52 | +# Set cmsuser as default user |
| 53 | +USER cmsuser |
| 54 | +ENV LANG=C.UTF-8 |
42 | 55 |
|
43 | | -RUN sudo pip3 install --break-system-packages -r requirements.txt |
44 | | -RUN sudo pip3 install --break-system-packages -r dev-requirements.txt |
| 56 | +RUN mkdir /home/cmsuser/src |
| 57 | +COPY --chown=cmsuser:cmsuser install.py constraints.txt /home/cmsuser/src/ |
45 | 58 |
|
46 | | -COPY --chown=cmsuser:cmsuser . /home/cmsuser/cms |
| 59 | +WORKDIR /home/cmsuser/src |
47 | 60 |
|
48 | | -RUN sudo pip3 install --break-system-packages . |
| 61 | +RUN ./install.py venv |
| 62 | +ENV PATH="/home/cmsuser/cms/bin:$PATH" |
49 | 63 |
|
50 | | -RUN sudo python3 prerequisites.py --yes --cmsuser=cmsuser install |
| 64 | +COPY --chown=cmsuser:cmsuser . /home/cmsuser/src |
51 | 65 |
|
52 | | -RUN sed 's|/cmsuser:your_password_here@localhost:5432/cmsdb"|/postgres@testdb:5432/cmsdbfortesting"|' ./config/cms.sample.toml \ |
53 | | - | sudo tee /usr/local/etc/cms-testdb.toml |
54 | | -RUN sed -e 's|/cmsuser:your_password_here@localhost:5432/cmsdb"|/postgres@devdb:5432/cmsdb"|' -e 's/127.0.0.1/0.0.0.0/' ./config/cms.sample.toml \ |
55 | | - | sudo tee /usr/local/etc/cms-devdb.toml |
56 | | -RUN sed 's/127.0.0.1/0.0.0.0/' ./config/cms_ranking.sample.toml | sudo tee /usr/local/etc/cms_ranking.toml |
| 66 | +RUN ./install.py cms --devel |
57 | 67 |
|
58 | | -ENV LANG C.UTF-8 |
| 68 | +RUN sed 's|/cmsuser:your_password_here@localhost:5432/cmsdb"|/postgres@testdb:5432/cmsdbfortesting"|' ./config/cms.sample.toml >../cms/etc/cms-testdb.toml |
| 69 | +RUN sed -e 's|/cmsuser:your_password_here@localhost:5432/cmsdb"|/postgres@devdb:5432/cmsdb"|' -e 's/127.0.0.1/0.0.0.0/' ./config/cms.sample.toml >../cms/etc/cms-devdb.toml |
| 70 | +RUN sed -i 's/127.0.0.1/0.0.0.0/' ../cms/etc/cms_ranking.toml |
59 | 71 |
|
60 | | -CMD [""] |
| 72 | +CMD ["/bin/bash"] |
0 commit comments