From 43eab9b9696a43186b6ff20d1a94d7850183966b Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Wed, 10 Jan 2018 07:20:19 -0800 Subject: [PATCH 1/9] Fixed typo in image name --- docker/development.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/development.Dockerfile b/docker/development.Dockerfile index fa78aac8..33d37c31 100644 --- a/docker/development.Dockerfile +++ b/docker/development.Dockerfile @@ -1,4 +1,4 @@ -FROM typesense/ubuntu-10-04-gcc:6.4.0 +FROM typesense/ubuntu-10.04-gcc:6.4.0 ENV PATH /usr/local/gcc-6.4.0/bin/:$PATH ENV LD_LIBRARY_PATH /usr/local/gcc-6.4.0/lib64 From 5f8420fbf73372994fb53987dfffaeda3838283f Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Wed, 10 Jan 2018 07:22:05 -0800 Subject: [PATCH 2/9] CircleCI WIP --- .circleci/config.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..9e5bbbbd --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,29 @@ +version: 2 +jobs: + build: + docker: + - image: typesense/typesense-development:latest + environment: + - PROJECT_DIR: /typesense + - TYPESENSE_VERSION: $CIRCLE_BRANCH-$CIRCLE_SHA1 + working_directory: /typesense + steps: + - checkout + - run: + name: generate cache key source + command: git log --pretty=format:'%H' -n 1 -- cmake CMakeLists.txt build.sh > last-changed-git-sha-for-dependency-listing + - restore_cache: + keys: + - external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }} + - external-Linux-cache-{{ .Branch }} + - external-Linux-cache + - run: + name: build + command: $PROJECT_DIR/build.sh + - save_cache: + key: external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }} + paths: + - $PROJECT_DIR/external-Linux + - run: + name: test + command: $PROJECT_DIR/build/typesense_test From 3cded7207ad4d9302131fe23ebf4d00bff09b667 Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Fri, 30 Mar 2018 08:01:13 -0700 Subject: [PATCH 3/9] Cleaned up dockerfile, consolidated apt-get and switched from curl to ADD --- docker/ubuntu-10-04-gcc.Dockerfile | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/docker/ubuntu-10-04-gcc.Dockerfile b/docker/ubuntu-10-04-gcc.Dockerfile index 3080c464..0ad803a4 100644 --- a/docker/ubuntu-10-04-gcc.Dockerfile +++ b/docker/ubuntu-10-04-gcc.Dockerfile @@ -1,18 +1,26 @@ +# $ docker build --file $PROJECT_DIR/docker/ubuntu-10-04-gcc.Dockerfile --tag typesense/ubuntu-10.04-gcc:latest --tag typesense/ubuntu-10.04-gcc:6.5 $PROJECT_DIR/docker +# # NOTE: Default build image is bloated. Before publishing, export from a container to squash the image: -# $ docker run -it typesense/ubuntu-10-04-gcc:6.4.0 bash -c "exit" +# $ docker run -it typesense/ubuntu-10.04-gcc:latest bash -c "exit" # $ docker ps -a | grep typesense -# $ docker export | docker import - typesense/ubuntu-10-04-gcc:6.4.0 +# $ docker export | docker import - typesense/ubuntu-10.04-gcc:latest +# FROM ubuntu:10.04 RUN sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list -RUN apt-get update -RUN apt-get install -y build-essential +RUN apt-get update && apt-get install -y \ + build-essential \ + tar \ + curl \ + libmpfr-dev \ + libgmp3-dev \ + libmpc-dev \ + flex \ + bison \ + zlib1g-dev -RUN apt-get -y install curl tar -RUN apt-get -y install libmpfr-dev libgmp3-dev libmpc-dev flex bison zlib1g-dev - -RUN curl -o /opt/gcc-6.4.0.tar.gz -L http://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz +ADD https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz /opt/ RUN tar -C /opt -xf /opt/gcc-6.4.0.tar.gz RUN mkdir /opt/gcc-6.4.0/build && cd /opt/gcc-6.4.0/build && ../configure --disable-checking --enable-languages=c,c++ \ From 032198a1172824b22c0c092c45c75956a040f66e Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Fri, 30 Mar 2018 08:08:50 -0700 Subject: [PATCH 4/9] Store artificats --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9e5bbbbd..9dbe7dfa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,6 +24,9 @@ jobs: key: external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }} paths: - $PROJECT_DIR/external-Linux + - store_artifacts: + path: $PROJECT_DIR/build + destination: build - run: name: test command: $PROJECT_DIR/build/typesense_test From 5ad40071943d20d9aa1df201bd61612e7e2bbb52 Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Fri, 30 Mar 2018 08:11:44 -0700 Subject: [PATCH 5/9] Added instructions to push --- docker/ubuntu-10-04-gcc.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/ubuntu-10-04-gcc.Dockerfile b/docker/ubuntu-10-04-gcc.Dockerfile index 0ad803a4..d23ad2a0 100644 --- a/docker/ubuntu-10-04-gcc.Dockerfile +++ b/docker/ubuntu-10-04-gcc.Dockerfile @@ -4,7 +4,7 @@ # $ docker run -it typesense/ubuntu-10.04-gcc:latest bash -c "exit" # $ docker ps -a | grep typesense # $ docker export | docker import - typesense/ubuntu-10.04-gcc:latest -# +# $ docker push typesense/ubuntu-10.04-gcc FROM ubuntu:10.04 From c77edc0c225a43110d93f44abcb79709c0e475b3 Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Fri, 30 Mar 2018 08:12:36 -0700 Subject: [PATCH 6/9] Add git-core, consolidate apt-get, switch from using curl to ADD --- docker/development.Dockerfile | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/docker/development.Dockerfile b/docker/development.Dockerfile index 33d37c31..559a16c4 100644 --- a/docker/development.Dockerfile +++ b/docker/development.Dockerfile @@ -1,30 +1,38 @@ -FROM typesense/ubuntu-10.04-gcc:6.4.0 +# docker build --file $PROJECT_DIR/docker/development.Dockerfile --tag typesense/typesense-development:latest $PROJECT_DIR/docker +# +# NOTE: Default build image is bloated. Before publishing, export from a container to squash the image: +# $ docker run -it typesense/typesense-development:latest bash -c "exit" +# $ docker ps -a | grep typesense +# $ docker export | docker import - typesense/typesense-development:latest +# $ docker push typesense/typesense-development + +FROM typesense/ubuntu-10.04-gcc:6.5.0 ENV PATH /usr/local/gcc-6.4.0/bin/:$PATH ENV LD_LIBRARY_PATH /usr/local/gcc-6.4.0/lib64 -RUN apt-get update +RUN apt-get update && apt-get install -y \ + zlib1g-dev \ + liblist-compare-perl \ + git-core \ + libidn11 -RUN apt-get install -y zlib1g-dev -RUN apt-get install -y liblist-compare-perl - -RUN curl -o /opt/cmake-3.3.2-Linux-x86_64.tar.gz -L https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz +ADD https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz /opt/ RUN tar -C /opt -xvzf /opt/cmake-3.3.2-Linux-x86_64.tar.gz RUN cp -r /opt/cmake-3.3.2-Linux-x86_64/* /usr -RUN apt-get install libidn11 -RUN curl -o /opt/snappy_1.1.3.orig.tar.gz -L https://launchpad.net/ubuntu/+archive/primary/+files/snappy_1.1.3.orig.tar.gz +ADD https://launchpad.net/ubuntu/+archive/primary/+files/snappy_1.1.3.orig.tar.gz /opt/ RUN tar -C /opt -xf /opt/snappy_1.1.3.orig.tar.gz RUN mkdir /opt/snappy-1.1.3/build && cd /opt/snappy-1.1.3/build && ../configure && make && make install -RUN curl -o /opt/openssl-1.0.2k.tar.gz -L https://openssl.org/source/openssl-1.0.2k.tar.gz +ADD https://openssl.org/source/openssl-1.0.2k.tar.gz /opt/ RUN tar -C /opt -xvzf /opt/openssl-1.0.2k.tar.gz RUN cd /opt/openssl-1.0.2k && sh ./config --prefix=/usr --openssldir=/usr zlib-dynamic RUN make -C /opt/openssl-1.0.2k depend RUN make -C /opt/openssl-1.0.2k -j4 RUN make -C /opt/openssl-1.0.2k install -RUN curl -L -o /opt/curl-7.55.1.tar.bz2 https://github.com/curl/curl/releases/download/curl-7_55_1/curl-7.55.1.tar.bz2 +ADD https://github.com/curl/curl/releases/download/curl-7_55_1/curl-7.55.1.tar.bz2 /opt/ RUN tar -C /opt -xf /opt/curl-7.55.1.tar.bz2 RUN cd /opt/curl-7.55.1 && ./configure && make && make install From aa59cac7c2d9abc853acc23169f16b773360bd7f Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Sat, 31 Mar 2018 09:01:28 -0700 Subject: [PATCH 7/9] Add latest version of git --- docker/development.Dockerfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docker/development.Dockerfile b/docker/development.Dockerfile index 559a16c4..9b5c939d 100644 --- a/docker/development.Dockerfile +++ b/docker/development.Dockerfile @@ -1,21 +1,20 @@ # docker build --file $PROJECT_DIR/docker/development.Dockerfile --tag typesense/typesense-development:latest $PROJECT_DIR/docker # -# NOTE: Default build image is bloated. Before publishing, export from a container to squash the image: -# $ docker run -it typesense/typesense-development:latest bash -c "exit" -# $ docker ps -a | grep typesense -# $ docker export | docker import - typesense/typesense-development:latest -# $ docker push typesense/typesense-development +# $ docker push typesense/typesense-development:latest FROM typesense/ubuntu-10.04-gcc:6.5.0 ENV PATH /usr/local/gcc-6.4.0/bin/:$PATH ENV LD_LIBRARY_PATH /usr/local/gcc-6.4.0/lib64 -RUN apt-get update && apt-get install -y \ +RUN apt-get install -y python-software-properties \ + && add-apt-repository ppa:git-core/ppa \ + && apt-get update \ + && apt-get install -y \ zlib1g-dev \ liblist-compare-perl \ - git-core \ - libidn11 + libidn11 \ + git ADD https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz /opt/ RUN tar -C /opt -xvzf /opt/cmake-3.3.2-Linux-x86_64.tar.gz From ff0218a24eaf167193049e021f6436494027c213 Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Sat, 31 Mar 2018 09:04:43 -0700 Subject: [PATCH 8/9] Fix artifact path --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9dbe7dfa..c45ab42f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,7 +25,7 @@ jobs: paths: - $PROJECT_DIR/external-Linux - store_artifacts: - path: $PROJECT_DIR/build + path: /typesense/build destination: build - run: name: test From 29da6295d98fb93f90e3bc285fefffe8d5f300af Mon Sep 17 00:00:00 2001 From: Jason Bosco Date: Sat, 31 Mar 2018 17:28:26 -0700 Subject: [PATCH 9/9] Fix cache path --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c45ab42f..c10bb713 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,7 +23,7 @@ jobs: - save_cache: key: external-Linux-cache-{{ .Branch }}-{{ checksum "last-changed-git-sha-for-dependency-listing" }} paths: - - $PROJECT_DIR/external-Linux + - /typesense/external-Linux - store_artifacts: path: /typesense/build destination: build