| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Dockerfile for git-bridge
- FROM maven:3-jdk-11 as base
- RUN apt-get update && apt-get install -y make git sqlite3 build-essential dpkg-dev
- RUN echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list && \
- echo "deb-src http://deb.debian.org/debian buster-updates main" >> /etc/apt/sources.list && \
- echo "deb-src http://security.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list
- RUN mkdir -p /build
- WORKDIR /build
- RUN apt-get update && \
- apt-get -y source libjemalloc-dev && \
- apt-get -y build-dep libjemalloc-dev && \
- echo "override_dh_auto_configure:" >> jemalloc-5.1.0/debian/rules && \
- echo "\tdh_auto_configure -- --enable-debug --enable-fill --enable-prof --enable-stat" >> jemalloc-5.1.0/debian/rules && \
- cat jemalloc-5.1.0/debian/rules
- WORKDIR /build/jemalloc-5.1.0
- RUN dpkg-buildpackage
- ADD install-all-dev-packages.sh /install-all-dev-packages.sh
- RUN rm -rf /var/lib/apt/lists
- COPY vendor/envsubst /opt/envsubst
- RUN chmod +x /opt/envsubst
- RUN useradd --create-home node
- FROM base as builder
- COPY . /app
- WORKDIR /app
- RUN make package \
- # The name of the created jar contains the current version tag.
- # Rename it to a static path that can be used for copying.
- && find /app/target \
- -name 'writelatex-git-bridge*jar-with-dependencies.jar' \
- -exec mv {} /git-bridge.jar \;
- FROM builder
- # FROM openjdk:11-jre <-- disabled while we are memory profiling
- WORKDIR /
- RUN apt-get update && apt-get install -y git sqlite3 procps htop net-tools sockstat binutils graphviz \
- && rm -rf /var/lib/apt/lists
- # Install Google Cloud Profiler agent
- RUN mkdir -p /opt/cprof && \
- wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
- | tar xzv -C /opt/cprof
- # Install Google Cloud Debugger agent
- RUN mkdir /opt/cdbg && \
- wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
- tar xvz -C /opt/cdbg
- # Disabled while we are memory profiling (these are already in the image)
- # RUN useradd --create-home node
- # COPY --from=builder /git-bridge.jar /
- # COPY --from=builder /build/*.deb /tmp/
- # RUN dpkg -i /tmp/libjemalloc*.deb
- RUN dpkg -i /build/*.deb
- RUN apt-get -y update && /install-all-dev-packages.sh && rm -rf /var/lib/apt/lists
- COPY vendor/envsubst /opt/envsubst
- RUN chmod +x /opt/envsubst
- COPY conf/envsubst_template.json envsubst_template.json
- COPY start.sh start.sh
- RUN mkdir conf
- RUN chown node:node conf
- USER node
- CMD ["/start.sh"]
|