Skip to content

Commit

Permalink
add Dockerfile and requirements.txt, used by the Dockerfile in settin… (
Browse files Browse the repository at this point in the history
#192)

* add Dockerfile and requirements.txt, used by the Dockerfile in setting up python dependencies. This container allows building and running of the tests and coverage report generation.

* update REDME to include docker based instructions.
  • Loading branch information
adam-scislowicz authored Jun 13, 2022
1 parent b313f0b commit 34c3272
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
53 changes: 53 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
FROM ubuntu:22.04

ENV UID=1000
ENV GID=1000
ENV USER=ubuntu

WORKDIR /tmp
COPY requirements.txt .

SHELL ["/bin/bash", "-c"]

RUN apt-get clean \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
clang-format cmake gcc-11 g++-11 gdb \
git \
lcov \
libfmt-dev \
libpython3-dev \
libspdlog-dev \
locales \
ninja-build \
packaging-dev \
python3-pip \
python3-venv \
ruby \
software-properties-common \
tmux \
uncrustify \
&& pip3 install -r requirements.txt \
&& wget --progress=dot:giga https://github.com/danmar/cppcheck/archive/2.6.tar.gz \
&& tar xvzf 2.6.tar.gz \
&& mkdir cppcheck-2.6/build \
&& cd cppcheck-2.6/build \
&& cmake .. -GNinja \
&& ninja \
&& ninja install \
&& groupadd $USER -g $GID \
&& adduser $USER --gid $UID --uid 1000 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& locale-gen en_US.UTF-8 \
&& echo "${USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers


USER $USER

RUN wget -qO - https://sh.rustup.rs | sh -s -- --no-modify-path -y

ENV PATH="/home/${USER}/.cargo/bin:${PATH}"

RUN rustup component add rustfmt clippy
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ git submodule update --checkout --init --recursive test/unit-test/CMock

### Platform Prerequisites

- Docker

or the following:
- For running unit tests
- **C90 compiler** like gcc
- **CMake 3.13.0 or later**
Expand All @@ -99,6 +102,10 @@ git submodule update --checkout --init --recursive test/unit-test/CMock

### Steps to build **Unit Tests**

1. If using docker, launch the container:
1. `docker build -t coremqtt .`
1. `docker run -it -v "$PWD":/workspaces/coreMQTT -w /workspaces/coreMQTT coremqtt`

1. Go to the root directory of this repository. (Make sure that the **CMock** submodule is cloned as described [above](#checkout-cmock-submodule))

1. Run the *cmake* command: `cmake -S test -B build`
Expand Down
13 changes: 13 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
black
check-manifest
cookiecutter
flake8
mypy
nox
pre-commit
pybind11
pylint
pytest
pyyaml
setuptools
setuptools-rust

0 comments on commit 34c3272

Please sign in to comment.