Skip to content

Commit

Permalink
docker: Add helper recipe
Browse files Browse the repository at this point in the history
Using official rust's docker image as base.

For the record it can be rebased on ubuntu:21.10
(and cargo should be added to base packages)

My distro RUST setup is not running it out of the box
so I used a more recent one.

For the record the observed error was:

  error[E0599]: no variant or associated item named `OutOfMemory` found for enum `ErrorKind` in the current scope
  -> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/sqlx-core-0.5.10/src/sqlite/connection/establish.rs:107:32

Install example is needed because there is no default installation rule:

  error: there is nothing to install in `astarte_sdk v0.1.0 (/local/src/astarte-device-sdk-rust)`, because it has no binaries

Forwarded: astarte-platform#31
Relate-to: astarte-platform#20
Signed-off-by: Philippe Coval <[email protected]>
  • Loading branch information
rzr committed Jan 24, 2022
1 parent 3acf4a3 commit c7a87d9
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#.dockerignore
.git/
#.gitignore
/target
Cargo.lock
43 changes: 43 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/echo docker build . -f
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: Apache-2.0
#{
# Copyright: 2021+ Philippe Coval <https://purl.org/rzr/>
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/ .
#}

FROM rust:bullseye
LABEL maintainer="Philippe Coval ([email protected])"

RUN echo "#log: Setup system" \
&& set -x \
&& apt-get update \
&& apt-get install -y \
--no-install-recommends \
ca-certificates \
libssl-dev \
pkg-config \
&& apt-get upgrade -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& date -u

ARG project=astarte-device-sdk-rust
ARG workdir="/local/src/${project}"

COPY . "${workdir}/"
WORKDIR "${workdir}"
RUN echo "#log: ${project}: Building sources" \
&& set -x \
&& export OPENSSL_NO_VENDOR=1 \
&& cargo build \
&& cargo install --path . \
|| cargo install --examples --path . \
&& date -u

WORKDIR "${workdir}"
ENTRYPOINT [ "cargo" ]
CMD [ "run", "--example", "simple", "--help" ]

0 comments on commit c7a87d9

Please sign in to comment.