Sign inSign up

druxx/ubuntu-ceedling

By druxx

Updated over 2 years ago

A development environment for C programming based on ubuntu with Ceedling and Doxygen installed

Image
0

10K+

druxx/ubuntu-ceedling repository overview

The following development environment is based on ubuntu LTS and contains:

  • gcc
  • make
  • vim
  • bash
  • git
  • ceedling
  • doxygen
  • rbenv

Meant to provide a replacement to the Official Ceedling image which is based on an old alpine linux which is vulnerable to multiple security threats.

Since current version of Ceedling (v.0.31.1) is not up-to-date, it requires ruby v3.0.6 and will not work with latest ruby version. Luckily, this image contains rbenv which makes it super easy to work with any ruby version we like.

Run using Docker:

docker run --interactive --tty --rm druxx/ubuntu-ceedling:latest

Dockerfile:

FROM ubuntu:22.04 as base

MAINTAINER [email protected]

# Install the required packages
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
  apt-get install --yes --no-install-recommends \
  ca-certificates \
  systemd \
  build-essential \
  git \
  make \
  gcc \
  gcc-avr \
  valgrind \
  vim \
  bash \
  wget \
  curl \
  libz-dev \
  doxygen

# Clean the apt cache
RUN	apt-get clean &&\
  rm -rf /var/cache/apt/archives/* && \
  rm -rf /var/lib/apt/lists/*

# Install rbenv-build 
RUN curl --fail --silent --show-error --location https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
ENV PATH="$PATH:/root/.rbenv/bin:/root/.rbenv/shims"

# Validate rbenv using rbev-doctor
RUN curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash
RUN echo 'eval "$(~/.rbenv/bin/rbenv init -)"' >> /etc/profile.d/rbenv.sh

# Install rbenv and set the desired version
ARG RBENV_VERSION=3.0.6
ENV RBENV_VERSION $RBENV_VERSION
RUN rbenv install $RBENV_VERSION &&\
    rbenv global $RBENV_VERSION

# Install ceedling, cmock and unity
RUN gem install ceedling

WORKDIR /project
CMD bash

Docker-Compose:

# Comments are provided throughout this file to help you get started.
# If you need more help, visit the Docker compose reference guide at
# https://docs.docker.com/go/compose-spec-reference/

# Here the instructions define your application as a service called "app".
# This service is built from the Dockerfile in the current directory.
# You can add other services your application may depend on here, such as a
# database or a cache. For examples, see the Awesome Compose repository:
# https://github.com/docker/awesome-compose
services:
  app:
    image: druxx/ubuntu-ceedling:22.04-v0.31.1
    platform: linux/amd64
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./demo:/project
    restart: unless-stopped

    # If your application exposes a port, uncomment the following lines and change
    # the port numbers as needed. The first number is the host port and the second
    # is the port inside the container.
    # ports:
    #   - 8080:8080

Tag summary

Content type

Image

Digest

sha256:3c5c8da0b

Size

408.2 MB

Last updated

over 2 years ago

docker pull druxx/ubuntu-ceedling