]> jfr.im git - uguu.git/blame - docker/Dockerfile
fix
[uguu.git] / docker / Dockerfile
CommitLineData
af4b9c42
GJ
1FROM --platform=linux/amd64 debian:bullseye-slim
2
3# Install needed software
4RUN apt-get update
5
6RUN apt-get install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 curl cron socat
7RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
8RUN curl -fsSL https://packages.sury.org/php/apt.gpg| gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
9RUN apt-get update
10RUN apt-get upgrade -y
11RUN curl -o nodejssetup.sh https://deb.nodesource.com/setup_19.x
12RUN chmod a+x nodejssetup.sh
13RUN ./nodejssetup.sh
14RUN apt-get install -y nodejs gcc g++ make
15RUN apt-get install -y build-essential nginx-full php8.1-fpm php8.1 sqlite3 php8.1-sqlite3 \
16 php8.1-curl php8.1-cli php8.1-lz4 \
17 php8.1-mcrypt php8.1-mysql php8.1-xdebug php8.1-zip \
18 php8.1-common php8.1-readline php8.1-bcmath php8.1-common php8.1-xml
b3c0237a 19
7f8963f6
GJ
20
21ARG DOMAIN
22ENV DOMAIN=$DOMAIN
23ARG FILE_DOMAIN
24ENV FILE_DOMAIN=$FILE_DOMAIN
25ARG CONTACT_EMAIL
26ENV CONTACT_EMAIL=$CONTACT_EMAIL
27
b3c0237a 28# Set default workdir
0a6585a2 29WORKDIR /var/www/
30
31COPY docker/docker-entrypoint.sh .
32
e480c0e5
GJ
33# Decompress into Docker
34COPY docker/uguuForDocker.tar.gz /var/www/
35RUN mkdir /var/www/uguu
36RUN tar -xvf uguuForDocker.tar.gz -C uguu
0a6585a2 37
b3c0237a 38# Create the needed directories
e480c0e5
GJ
39RUN mkdir /var/www/files && \
40 mkdir /var/www/db
fca51030 41
b3c0237a 42# Create the Sqlite DB
af4b9c42 43RUN sqlite3 /var/www/db/uguuDB.sq3 -init /var/www/uguu/src/static/dbSchemas/sqlite_schema.sql "" && \
b3c0237a 44 chown -R www-data:www-data /var/www && \
0a6585a2 45 chmod -R 775 /var/www/
46
af4b9c42
GJ
47# Add scripts to cron
48RUN echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkfiles.sh" >> /var/spool/cron/crontabs/www-data && \
49 echo "0,30 * * * * bash /var/www/uguu/src/static/scripts/checkdb.sh" >> /var/spool/cron/crontabs/www-data
50
b3c0237a 51# Fix script paths
e480c0e5
GJ
52RUN chmod a+x /var/www/uguu/src/static/scripts/checkdb.sh && \
53 chmod a+x /var/www/uguu/src/static/scripts/checkfiles.sh && \
54 sed -i 's#/path/to/files/#/var/www/uguu/files/#g' /var/www/uguu/src/static/scripts/checkfiles.sh && \
55 sed -i 's#/path/to/db/uguu.sq3#/var/www/db/uguu.sq3#g' /var/www/uguu/src/static/scripts/checkdb.sh
0a6585a2 56
b3c0237a 57# Copy Nginx Server conf
af4b9c42 58COPY docker/nginx/uguu.conf /etc/nginx/sites-enabled/uguu.conf
b3c0237a 59
7f8963f6
GJ
60RUN sed -i "s#XMAINDOMAINX#${DOMAIN}#g" /etc/nginx/sites-enabled/uguu.conf
61RUN sed -i "s#XFILESDOMAINX#${FILE_DOMAIN}#g" /etc/nginx/sites-enabled/uguu.conf
b3c0237a 62
af4b9c42
GJ
63# Copy SSL certs
64#COPY docker/ssl /etc/ssl
e480c0e5 65
b3c0237a 66# Copy Uguu config
e480c0e5 67COPY src/config.json /var/www/uguu/config.json
b3c0237a 68
b3c0237a 69# Expose port 80 from the container
0a6585a2 70EXPOSE 80
71
ccf3370a
GJ
72# Expose port 443 from the container
73EXPOSE 443
74
af4b9c42
GJ
75#RUN service nginx restart
76# Change user to www-data
77#USER www-data
78
79#RUN cd /var/www/uguu && make && make install
80
af4b9c42
GJ
81RUN curl -o acmeinstall.sh https://get.acme.sh
82RUN chmod a+x acmeinstall.sh
83RUN ./acmeinstall.sh
b3c0237a 84# Load entrypoint
fca51030 85ENTRYPOINT [ "bash", "/var/www/docker-entrypoint.sh" ]