Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaasuni committed Sep 23, 2016
0 parents commit dd6b467
Show file tree
Hide file tree
Showing 7 changed files with 1,194 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target
862 changes: 862 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Makefile
#
# @since 2016-09-23
# @category Docker
# @author Nicola Asuni <[email protected]>
# @copyright 2015-2015 Nicola Asuni - Tecnick.com LTD
# @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
# @link https://github.com/tecnickcom/alldev
#
# This file is part of alldev project.
# ----------------------------------------------------------------------------------------------------------------------

# List special make targets that are not associated with files
.PHONY: help all build upload

# Project owner
OWNER=tecnickcom

# Project vendor
VENDOR=${OWNER}

# Project name
PROJECT=alldev

# Project version
VERSION=$(shell cat VERSION)

# Project release number (packaging build number)
RELEASE=$(shell cat RELEASE)

# Current directory
CURRENTDIR=$(shell pwd)

# --- MAKE TARGETS ---

# Display general help about this command
help:
@echo ""
@echo "${PROJECT} Makefile."
@echo "The following commands are available:"
@echo ""
@echo " make build : Build the Docker image"
@echo " make upload : Upload the docker image (only with the right credentials)"
@echo ""

# Alias for help target
all: help

# Build the Docker image
build:
docker build -t ${OWNER}/${PROJECT}:latest ./src/
docker tag ${OWNER}/${PROJECT}:latest ${OWNER}/${PROJECT}:${VERSION}-${RELEASE}

# Upload docker image
upload:
docker push ${OWNER}/${PROJECT}:latest
docker push ${OWNER}/${PROJECT}:$(cat VERSION)-$(cat RELEASE)
84 changes: 84 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# alldev

*Dockerfile to build a generic development environment based on Ubuntu Linux*

[![Donate via PayPal](https://img.shields.io/badge/donate-paypal-87ceeb.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&currency_code=GBP&[email protected]&item_name=donation%20for%20alldev%20project)
*Please consider supporting this project by making a donation via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&currency_code=GBP&[email protected]&item_name=donation%20for%20alldev%20project)*

* **category** Docker
* **author** Nicola Asuni <[email protected]>
* **copyright** 2016-2016 Nicola Asuni - Tecnick.com LTD
* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
* **link** https://github.com/tecnickcom/alldev

## Description

Source configuration file to build a Docker container image with a generic development environment.

## Requirements

This script requires Docker (https://www.docker.com/).
To install Docker in a debian or Ubuntu OS:
```
sudo apt-get install docker docker.io
```
Add your user to the "docker" group:
```
sudo groupadd docker
sudo gpasswd -a <YOURUSER> docker
sudo service docker restart
```


## Getting started

This project include a Makefile that allows you to automate common operations.
To see all available options:
```
make help
```
To build the project
```
make build
```

## Useful Docker commands

To manually create the container you can execute:
```
docker build --tag="tecnickcom/alldev" .
```

To log into the newly created container:
```
docker run -t -i tecnickcom/alldev /bin/bash
``
To get the container ID:
```
CONTAINER_ID=`docker ps -a | grep tecnickcom/alldev | cut -c1-12`
```
To delete the newly created docker container:
```
docker rm -f $CONTAINER_ID
```
To delete the docker image:
```
docker rmi -f tecnickcom/alldev
```
To delete all containers
```
docker rm $(docker ps -a -q)
```
To delete all images
```
docker rmi $(docker images -q)
```
## Developer(s) Contact
* Nicola Asuni <[email protected]>
1 change: 1 addition & 0 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.0
188 changes: 188 additions & 0 deletions src/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
# Dockerfile
#
# Development environment based on Ubuntu 16.04 (Xenial)
#
# @author Nicola Asuni <[email protected]>
# @copyright 2016-2016 Nicola Asuni - Tecnick.com LTD
# @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
# @link https://github.com/tecnickcom/alldev
# ------------------------------------------------------------------------------

FROM ubuntu:xenial
MAINTAINER [email protected]

ENV DEBIAN_FRONTEND noninteractive
ENV TERM linux
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
ENV HOME /root
ENV DISPLAY :0
ENV GOPATH=/root
ENV PATH=$GOPATH/bin:$PATH

# Configure SSH
RUN mkdir -p /root/.ssh && echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config

# Add i386 architecture
RUN dpkg --add-architecture i386

# Configure GO
RUN mkdir -p /root/bin && \
mkdir -p /root/pkg && \
mkdir -p /root/src && \
echo 'export GOPATH=/root' >> /root/.profile && \
echo 'export PATH=$GOPATH/bin:$PATH' >> /root/.profile

# Add repositories and update
RUN apt-get update && apt-get -y dist-upgrade && \
apt-get install -y apt-utils software-properties-common python-software-properties && \
apt-add-repository universe && \
apt-add-repository multiverse && \
apt-get update

# install development packages and debugging tools
RUN apt-get install -y \
alien \
apache2 \
astyle \
autoconf \
autotools-dev \
binfmt-support \
binutils-mingw-w64 \
build-essential \
cmake \
curl \
debhelper \
devscripts \
dh-golang \
dh-make \
dos2unix \
doxygen \
doxygen-latex \
fabric \
fastjar \
flawfinder \
g++ \
gcc \
gdb \
ghostscript \
git \
g++-multilib \
golang \
golang-golang-x-tools \
gsfonts \
imagemagick \
lcov \
libboost-all-dev \
libc6 \
libc6-dev \
libc6-dev-i386 \
libffi-dev \
libglib2.0-0 \
libglib2.0-dev \
libssl1.0.0 \
libssl-dev \
libwine-development \
libxml2 \
libxml2-dev \
libxmlsec1 \
libxmlsec1-dev \
libxmlsec1-openssl \
libxslt1.1 \
libxslt1-dev \
lsof \
make \
mingw-w64 \
mingw-w64-i686-dev \
mingw-w64-tools \
mingw-w64-x86-64-dev \
mongodb \
mysql-client \
mysql-server \
mysql-utilities \
nano \
npm \
openssh-client \
openssh-server \
openssl \
parallel \
pbuilder \
perl \
php \
php-all-dev \
php-amqp \
php-apcu \
php-bcmath \
php-bz2 \
php-cgi \
php-cli \
php-codesniffer \
php-common \
php-curl \
php-db \
php-dev \
php-gd \
php-igbinary \
php-imagick \
php-intl \
php-json \
php-mbstring \
php-memcache \
php-memcached \
php-mongodb \
php-msgpack \
php-mysql \
php-pear \
php-sqlite3 \
php-xdebug \
php-xml \
pkg-config \
postgresql-contrib-9.5 \
pyflakes \
pylint \
python \
python-all \
python-all-dev \
python-coverage \
python-dev \
python-lxml \
python-nose \
python-pip \
python-setuptools \
redis-server \
redis-tools \
rpm \
rsync \
ruby-all-dev \
screen \
ssh \
strace \
swig \
texlive-base \
ubuntu-restricted-addons \
ubuntu-restricted-extras \
upx-ucl \
valgrind \
vim \
wget \
wine \
wine64-development-tools \
winetricks \
zbar-tools \
zlib1g \
zlib1g-dev

# Install etra python dependencies
RUN pip install --upgrade pip && \
pip install cffi && \
pip install --upgrade autopep8

# Install extra npm dependencies
RUN pip install fabric && \
cd /usr/bin && ln -s nodejs node && \
npm install --global grunt-cli && \
npm install --global gulp-cli && \
npm install --global jquery && \
npm install --global uglify-js && \
npm install --global uglifyjs && \
npm install --global csso && \
npm install --global html-minifier

0 comments on commit dd6b467

Please sign in to comment.