From 4b5068e455cff05dc26614d543db7ec09897c9f5 Mon Sep 17 00:00:00 2001 From: Marko Budiselic Date: Wed, 18 Mar 2020 15:32:23 +0100 Subject: [PATCH] Update release docker Summary: * Update dockerfiles (add `libseccomp2` `python3`). * Parse docker offering info from the package name. Reviewers: teon.banek, mferencevic Reviewed By: mferencevic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1924 --- ...ckerfile => memgraph_community.dockerfile} | 4 +- release/docker/memgraph_enterprise.dockerfile | 26 ++++++++++ release/docker/package_deb_docker | 47 +++++++++++++++++++ release/docker/package_docker | 43 ----------------- 4 files changed, 75 insertions(+), 45 deletions(-) rename release/docker/{memgraph.dockerfile => memgraph_community.dockerfile} (85%) create mode 100644 release/docker/memgraph_enterprise.dockerfile create mode 100755 release/docker/package_deb_docker delete mode 100755 release/docker/package_docker diff --git a/release/docker/memgraph.dockerfile b/release/docker/memgraph_community.dockerfile similarity index 85% rename from release/docker/memgraph.dockerfile rename to release/docker/memgraph_community.dockerfile index a15770e51..c6278d136 100644 --- a/release/docker/memgraph.dockerfile +++ b/release/docker/memgraph_community.dockerfile @@ -3,7 +3,7 @@ FROM debian:stretch ARG deb_release RUN apt-get update && apt-get install -y \ - openssl libcurl3 libssl1.1 \ + openssl libcurl3 libssl1.1 python3 libpython3.5 \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY ${deb_release} / @@ -20,7 +20,7 @@ VOLUME /var/lib/memgraph VOLUME /etc/memgraph USER memgraph -WORKDIR /home/memgraph +WORKDIR /usr/lib/memgraph ENTRYPOINT ["/usr/lib/memgraph/memgraph"] CMD [""] diff --git a/release/docker/memgraph_enterprise.dockerfile b/release/docker/memgraph_enterprise.dockerfile new file mode 100644 index 000000000..0405cbc63 --- /dev/null +++ b/release/docker/memgraph_enterprise.dockerfile @@ -0,0 +1,26 @@ +FROM debian:stretch + +ARG deb_release + +RUN apt-get update && apt-get install -y \ + openssl libcurl3 libssl1.1 libseccomp2 python3 libpython3.5 \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +COPY ${deb_release} / + +# Install memgraph package +RUN dpkg -i ${deb_release} + +# Memgraph listens for Bolt Protocol on this port by default. +EXPOSE 7687 +# Snapshots and logging volumes +VOLUME /var/log/memgraph +VOLUME /var/lib/memgraph +# Configuration volume +VOLUME /etc/memgraph + +USER memgraph +WORKDIR /usr/lib/memgraph + +ENTRYPOINT ["/usr/lib/memgraph/memgraph"] +CMD [""] diff --git a/release/docker/package_deb_docker b/release/docker/package_deb_docker new file mode 100755 index 000000000..554957478 --- /dev/null +++ b/release/docker/package_deb_docker @@ -0,0 +1,47 @@ +#!/bin/bash -e + +# Build and package Docker image of Memgraph. + +function print_help () { + echo "Usage: $0 [--latest] MEMGPRAH_PACKAGE.deb" + echo "Optional arguments:" + echo -e "\t-h|--help\t\tPrint help." + echo -e "\t--latest\t\tTag image as latest version." +} + +working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +latest_image="" +tag_latest="" +if [[ $# -eq 2 && "$1" == "--latest" ]]; then + latest_image="memgraph:latest" + tag_latest="-t memgraph:latest" + shift +elif [[ $# -ne 1 || "$1" == "-h" || "$1" == "--help" ]]; then + print_help + exit 1 +fi + +deb_path="$1" +if [[ ! -f "$deb_path" ]]; then + echo "File '$deb_path' does not exist!" + exit 1 +fi + +# Copy the .deb to working directory. +cp "$deb_path" "${working_dir}/" +cd ${working_dir} + +# Extract version and offering from deb name. +deb_name=`echo $(basename "$deb_path") | sed 's/.deb$//'` +version=`echo ${deb_name} | cut -d '_' -f 2 | rev | cut -d '-' -f 2- | rev | tr '+~' '__'` +offering=`echo ${version} | cut -d '-' -f 2` +dockerfile_path="${working_dir}/memgraph_${offering}.dockerfile" +image_name="memgraph:${version}" +package_name="memgraph-${version}-docker.tar.gz" + +# Build docker image. +docker build -t ${image_name} ${tag_latest} -f ${dockerfile_path} --build-arg deb_release=${deb_name}.deb . +docker save ${image_name} ${latest_image} > ${package_name} +rm "${deb_name}.deb" +echo "Built Docker image at '${working_dir}/${package_name}'" diff --git a/release/docker/package_docker b/release/docker/package_docker deleted file mode 100755 index cfd4c5963..000000000 --- a/release/docker/package_docker +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -e - -# Build and Package (docker image) Memgraph - -function print_help () { - echo "Usage: $0 [--latest] MEMGPRAH_PACKAGE.deb" - echo "Optional arguments:" - echo -e " -h|--help Print help." - echo -e " --latest Tag image as latest version." -} - -working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -latest_image="" -tag_latest="" -if [[ $# -eq 2 && "$1" == "--latest" ]]; then - latest_image="memgraph:latest" - tag_latest="-t memgraph:latest" - shift -elif [[ $# -ne 1 || "$1" == "-h" || "$1" == "--help" ]]; then - print_help - exit 1 -fi - -if [[ ! -f "$1" ]]; then - echo "File '$1' does not exist!" - exit 1 -fi - -# Copy the .deb to working directory. -cp "$1" "${working_dir}/" - -cd ${working_dir} -# Extract version from deb name -deb_name=`echo $(basename $1) | sed 's/.deb//'` -version=`echo ${deb_name} | sed 's/.*[-_]\(.*\)-.*/\1/'` -image_name="memgraph:${version}" -package_name="memgraph-${version}-docker.tar.gz" -# Build docker image. -docker build -t ${image_name} ${tag_latest} -f ${working_dir}/memgraph.dockerfile --build-arg deb_release=${deb_name}.deb . -docker save ${image_name} ${latest_image} > ${package_name} -rm -rf "${deb_name}.deb" -echo "Built Docker image at '${working_dir}/${package_name}"