Files
mbs-infra/mbs/Dockerfile
2024-11-21 14:58:23 +08:00

49 lines
2.2 KiB
Docker

FROM fedora:36
WORKDIR /opt
COPY . /opt/mbs/
RUN rm /etc/yum.repos.d/{fedora-modular.repo,fedora-updates-modular.repo} -rf
RUN dnf install -y /opt/mbs/src/module-build-service-3.9.2-1.fc36.noarch.rpm \
&& dnf install fedmsg supervisor httpd python-psycopg2 python-memcached python-distro python3-libsemanage openssl mod_ssl rabbitmq-server mod_wsgi python3-mod_wsgi sqlite erlang SDL2 postgresql vim -y
## mbs-backend
RUN rm -f /etc/fedmsg.d/{module_build_service.py,mbs-logging.py} \
&& cp -a /opt/mbs/etc/module-build-service/* /etc/module-build-service/ \
&& chown root:fedmsg /etc/module-build-service/config.py /etc/module-build-service/koji.conf \
&& chmod 0640 /etc/module-build-service/config.py \
&& chmod 0644 /etc/module-build-service/koji.conf \
&& mkdir -pv /app/log/{fedmsg,httpd,mbs,mbs-poller,mbs-worker,rabbitmq} \
&& touch /app/log/mbs/module_build_service.log \
&& chmod 777 /app/log/mbs/module_build_service.log \
&& chown root:fedmsg /app -R \
&& mkdir -p /var/cache/fedmsg/ /usr/share/fedmsg \
&& chown fedmsg:fedmsg /var/cache/fedmsg/ /usr/share/fedmsg
## mbs httpd
RUN cp /opt/mbs/etc/httpd/conf.d/mbs.conf /etc/httpd/conf.d/mbs.conf \
&& openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt -subj "/ CN=localhost"
RUN cp -a /opt/mbs/etc/fedmsg.d/* /etc/fedmsg.d/ \
&& cp -a /opt/mbs/etc/pki/* /etc/pki/ \
&& cp -a /opt/mbs/etc/supervisord.d/* /etc/supervisord.d/ \
&& cp -a /opt/mbs/etc/rpkg/fedpkg.conf /etc/rpkg/fedpkg.conf \
&& cp -a /opt/mbs/ensure_vhost.sh /
## 修复auth问题
RUN cp -a /opt/mbs/pydist/module_build_service/web/auth.py /usr/lib/python3.10/site-packages/module_build_service/web/auth.py \
&& cp -a /opt/mbs/pydist/pyrpkg/__init__.py /usr/lib/python3.10/site-packages/pyrpkg/__init__.py
RUN rm -f /run/supervisor/supervisor.sock
### 修复本地证书问题
##RUN openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt -subj "/CN=localhost"
## supervisord
##RUN cp -a /opt/mbs/etc/supervisord.d/* /etc/supervisord.d/
EXPOSE 80 443
CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf","-n"]