# ----------------------------------------------------------------------- # NOTE: # Dependencies are not included as part of ROCm Compute Profiler. # It's the user's responsibility to accept any licensing implications # before building the project # ----------------------------------------------------------------------- FROM ubuntu:22.04 WORKDIR /app USER root ENV DEBIAN_FRONTEND noninteractive ENV TZ "US/Chicago" ENV NVM_DIR /usr/local/nvm ENV NODE_VERSION 20.12.2 ADD plugins/rocprofiler-compute_plugin /var/lib/grafana/plugins/rocprofiler-compute_plugin # Install Grafana and MongoDB Community Edition # Note: Grafana install is stubbed to 10.4.3 RUN apt-get update && \ apt-get install -y adduser libfontconfig1 musl wget && \ wget -q https://dl.grafana.com/enterprise/release/grafana-enterprise_10.4.3_amd64.deb && \ dpkg -i grafana-enterprise_10.4.3_amd64.deb && \ apt-get install -y gnupg curl && \ curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor && \ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \ apt-get update && \ apt-get install -y mongodb-org RUN mkdir /usr/local/nvm && \ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \ . $NVM_DIR/nvm.sh && \ nvm install $NODE_VERSION && \ nvm alias default $NODE_VERSION && \ nvm use default ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH RUN npm --version && \ node --version # Install Grafana plugins RUN apt-get install -y tzdata systemd apt-utils npm vim net-tools && \ /usr/sbin/grafana-cli plugins install michaeldmoore-multistat-panel && \ /usr/sbin/grafana-cli plugins install ae3e-plotly-panel && \ /usr/sbin/grafana-cli plugins install natel-plotly-panel && \ /usr/sbin/grafana-cli plugins install grafana-image-renderer && \ /usr/sbin/grafana-cli plugins install aceiot-svg-panel && \ chown root:grafana /etc/grafana && \ cd /var/lib/grafana/plugins/rocprofiler-compute_plugin && \ npm install && \ npm run build && \ apt-get autoremove -y && \ apt-get autoclean -y && \ sed -i "s/ bindIp.*/ bindIp: 0.0.0.0/" /etc/mongod.conf && \ mkdir -p /var/lib/grafana && \ touch /var/lib/grafana/grafana.lib && \ chown grafana:grafana /var/lib/grafana/grafana.lib # Overwrite grafana ini file COPY grafana.ini /etc/grafana # Switch Grafana port to 4000 RUN sed -i "s/^;http_port = 3000/http_port = 4000/" /etc/grafana/grafana.ini && \ sed -i "s/^http_port = 3000/http_port = 4000/" /usr/share/grafana/conf/defaults.ini # Starts mongo and grafana-server at startup COPY docker-entrypoint.sh /docker-entrypoint.sh ENTRYPOINT [ "/docker-entrypoint.sh" ]