mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-01-09 09:02:10 +01:00
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | alpine | final | patch | `3.18.2` -> `3.18.3` | | alpine | stage | patch | `3.18.2` -> `3.18.3` | --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIwLjAuMC1zZW1hbnRpYy1yZWxlYXNlIiwidXBkYXRlZEluVmVyIjoiMC4wLjAtc2VtYW50aWMtcmVsZWFzZSIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AifQ==--> Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
75 lines
2.5 KiB
Docker
75 lines
2.5 KiB
Docker
#
|
|
# MIT License
|
|
#
|
|
# Copyright (c) 2020-present Cloudogu GmbH and Contributors
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
# of this software and associated documentation files (the "Software"), to deal
|
|
# in the Software without restriction, including without limitation the rights
|
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
# copies of the Software, and to permit persons to whom the Software is
|
|
# furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in all
|
|
# copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
# SOFTWARE.
|
|
#
|
|
|
|
# Create minimal java version
|
|
FROM alpine:3.18.3 as jre-build
|
|
|
|
RUN set -x \
|
|
&& apk add --no-cache openjdk17-jdk openjdk17-jmods binutils \
|
|
&& jlink \
|
|
--add-modules ALL-MODULE-PATH \
|
|
--strip-debug \
|
|
--no-man-pages \
|
|
--no-header-files \
|
|
--compress=2 \
|
|
--output /javaruntime
|
|
|
|
|
|
# ---
|
|
|
|
# SCM-Manager runtime
|
|
FROM alpine:3.18.3 as runtime
|
|
|
|
ENV SCM_HOME /var/lib/scm
|
|
ENV CACHE_DIR /var/cache/scm/work
|
|
ENV JAVA_HOME /opt/java/openjdk
|
|
ENV PATH "${JAVA_HOME}/bin:${PATH}"
|
|
|
|
COPY --from=jre-build /javaruntime "${JAVA_HOME}"
|
|
COPY build/docker/etc /etc
|
|
COPY build/docker/opt /opt
|
|
|
|
RUN set -x \
|
|
# ttf-dejavu graphviz are required for the plantuml plugin
|
|
&& apk add --no-cache ttf-dejavu graphviz mercurial bash ca-certificates \
|
|
&& adduser -S -s /bin/false -h ${SCM_HOME} -D -H -u 1000 -G root scm \
|
|
&& mkdir -p ${SCM_HOME} ${CACHE_DIR} \
|
|
&& chmod +x /opt/scm-server/bin/scm-server \
|
|
# set permissions to group 0 for openshift compatibility
|
|
&& chown 1000:0 ${SCM_HOME} ${CACHE_DIR} \
|
|
&& chmod -R g=u ${SCM_HOME} ${CACHE_DIR}
|
|
|
|
USER 1000
|
|
|
|
WORKDIR "/opt/scm-server"
|
|
VOLUME ["${SCM_HOME}", "${CACHE_DIR}"]
|
|
EXPOSE 8080
|
|
|
|
# we us a high relative high start period,
|
|
# because the start time depends on the number of installed plugins
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=30s --retries=3 \
|
|
CMD /opt/scm-server/bin/healthcheck || exit 1
|
|
|
|
ENTRYPOINT [ "/opt/scm-server/bin/scm-server" ]
|