Stop using ubuntu image to reduce build times

We were previously using the ubuntu image and then manually installing
rust. From now on, we'll use the rust docker image instead to avoid huge
build times

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
next
Sayan Nandan 4 years ago
parent 03965d6b5b
commit c7b4a8396b
No known key found for this signature in database
GPG Key ID: C31EFD7DDA12AEE0

@ -1,10 +1,25 @@
kind: pipeline
type: docker
name: default
name: Build and Test
steps:
- name: Run tests
image: rust:latest
- name: run-tests
image: rust
commands:
- cargo build --verbose
- cargo test --verbose
---
kind: pipeline
type: docker
name: Docker Image
steps:
- name: Push to Docker Hub
image: plugins/docker
settings:
repo: terrabasedb/tdb
username:
from_secret: docker_username
password:
from_secret: docker_password
auto_tag: true

@ -1,69 +0,0 @@
name: Docker Image
on:
push:
# Publish `next` as Docker `latest` image.
branches:
- next
# Publish `v1.2.3` tags as releases.
tags:
- v*
env:
IMAGE_NAME: tdb
BUILD: "false"
jobs:
# Run tests.
# See also https://docs.docker.com/docker-hub/builds/automated-testing/
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Setup environment
run: |
chmod +x ci/buildvars.sh
ci/buildvars.sh
- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME
if: env.BUILD == 'true' || github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
- name: Push to Docker Hub
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: terrabasedb/tdb
tags: latest
tag_with_ref: true
if: env.BUILD == 'true' || github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
- name: Log into GitHub Container Registry
run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin
if: env.BUILD == 'true' || github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
- name: Push image to GitHub Container Registry
run: |
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "next" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
if: env.BUILD == 'true' || github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')

@ -2,24 +2,19 @@
# The Dockerfile for the TerrabaseDB server tdb
#
FROM ubuntu:20.04
ENV TZ=america/central
FROM rust:latest
RUN \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ >/etc/timezone && \
apt-get update && apt-get install git curl build-essential -y && \
apt-get update && apt-get install git curl -y && \
cd /tmp && \
curl https://sh.rustup.rs -sSf | sh -s -- -y && \
git clone https://github.com/terrabasedb/terrabasedb.git && \
cd terrabasedb && \
git checkout next && \
$HOME/.cargo/bin/cargo build --release -p tdb && \
cargo test --release -p tdb && \
cargo build --release -p tdb && \
apt-get remove git curl -y && \
apt-get autoremove -y && \
$HOME/.cargo/bin/rustup self uninstall -y && \
cp -f target/release/tdb /usr/local/bin
CMD ["tdb", "-h", "0.0.0.0", "-p", "2003"]
EXPOSE 2003/tcp
ARG DEBIAN_FRONTEND=noninteractive

Loading…
Cancel
Save