dockers/freechat-pipeline/Dockerfile
shockrah 7d9e71c866 + Adding python3, pip, and virtualenv to dependancies
- Removing mysql client since we don't need it for what we're doing
- Removing diesel since it's been replaced with a simpler shell script(that's totally not flaky)
! Try at some point to reduce all this crap outside of testing because dep list is getting larger every day
2021-04-29 22:33:43 -07:00

62 lines
2.4 KiB
Docker

# This docker image is used for building Freechat in Gitlab pipelines
# WARN: this image uses a lot of "lazy" practices in terms of security as its
# not at all meant to be ran in a production environment. Attempts to use this
# a "production/live" are not recommended
FROM rust:slim-buster
# required for building rust things and grabbing node
RUN apt-get update && apt-get upgrade -y && apt-get install \
git default-libmysqlclient-dev pkg-config \
curl libssl-dev ca-certificates gnupg \
python3 python3-pip \
-y --no-install-recommends
# Install virtualenv as its semi-required for python packages in freechat
# This is a (very) small goal: removing all python dependancies outside of testing
# Because frankly Rust binaries + Node BS + Python is just too awful to maintain
RUN pip3 install virtualenv
# Setup python3 as required for the mock client
# Setup node
# grab key
RUN curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
# add binary & source ppa
RUN echo "deb https://deb.nodesource.com/node_14.x sid main" > /etc/apt/sources.list.d/nodesource.list
RUN echo "deb-src https://deb.nodesource.com/node_14.x sid main" >> /etc/apt/sources.list.d/nodesource.list
RUN apt-get update && apt-get install nodejs \
-y --no-install-recommends
# Mysql setup
# NOTE: Keep in mind that because I'm basically throwing security out the window
# with this docker that we're mostly just using Mysql's default everything
# Later on in another script we setup a proper user to interface with sql but still,
# nothing here is to be used in prod(once again)
RUN mkdir /opt/mysql-setup
RUN curl "https://repo.mysql.com//mysql-apt-config_0.8.17-1_all.deb" \
-o /opt/mysql-setup/mysql-apt-config_0.8.17-1_all.deb
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install /opt/mysql-setup/mysql-apt-config_0.8.17-1_all.deb \
-y --no-install-recommends
# Use the newly installed mysql packages to install the server component
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install mysql-community-server \
-y --no-install-recommends
# Clean up from the apt-gets and things we don't do this
RUN apt-get remove curl gnupg ca-certificates -y # will go unused in regular builds
RUN apt-get autoremove -y
RUN rm -rf /var/lib/apt/lists/*
# Start the mysql service
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]