Ubuntu 14.04 (Trusty) container


#1

Notable Differences from Ubuntu 12.04 (Precise)

Installation policy for different versions of languages

We will install major and minor versions only with the latest patch level. For example, we will pre-install Python 2.7.11 (the latest patch level of 2.7 as of today) but not Python 2.7.6.

You can still specify versions not pre-installed but this will install the version at every build time and makes your builds slower, so we would recommend using pre-installed version.

Different package names

Sometimes package names are different in Precise and Trusty container. For example, MongoDB changes it’s service name from mongodb to mongod. Although this doesn’t happen very often, you may want to check if the service name is correct if the package you are looking for doesn’t exist in Trusty container.

Fewer services started by default

On Precise, many services are started by default. This was not good since unnecessary services use RAM in your build. On Trusty, only a few services are started by default. Please check Started by default of each service below.


Build Environment (v16.02.10)

Programming Languages

Python

Default: 2.7.11

Available versions

2.7.9
2.7.10
2.7.11
3.1.3
3.1.4
3.1.5
3.2.4
3.2.5
3.3.5
3.3.6
3.4.2
3.4.3
3.4.4
3.5.0
3.5.1
pypy-1.9
pypy-2.6.1
pypy-4.0.1

PHP

Default: 5.6.17

Available versions

5.5.31
5.6.17
7.0.2

Ruby

Default: 2.2.4

Available versions

ruby-2.0.0-p647
ruby-2.1.6
ruby-2.1.7
ruby-2.1.8
ruby-2.2.2
ruby-2.2.4
ruby-2.3.0

Nodejs

Default: 4.2.6

Available versions

v0.12.9
v4.0.0
v4.1.2
v4.2.6
v4.3.0
v5.0.0
v5.1.1
v5.2.0
v5.4.1
v5.5.0

Java

java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

Go

1.6

Databases

###MySQL

Started by default: true

5.6.28

PostgreSQL

Started by default: true

9.4.5

MongoDB

Started by default: true

Updated on 2/20

We’ve found that the service name of MongoDB is changed from mongodb to mongod and specifying mongod in your circle.yml breaks your build until we fix the issue.

In any case, MongoDB is started by default anyway.

Redis

Started by default: false

2:2.8.4-2

Elasticsearch

Started by default: false

1.7.2

Neo4j

Started by default: false

2.3.2

Docker

docker-engine

Started by default: false

1.9.1

docker-compose

1.5.2

Browsers

Firefox

44.0

Chrome

48.0.2564.97

PhantomJS

2.1.1

Misc

Qt

5.2.1

Memcached

Started by default: false

1.4.14

RabbitMQ

Started by default: false

3.2.4-1

Beanstalkd

Started by default: false

1.9.2

Android

Android SDK 23
Android SDK 22

Preinstall QT5 in images
Using Qt 5 with CircleCI
#2

In ubuntu 12 container, the message queuing service was started automatically.
Since we have to start it manually in 14, the service level name for rabbitmq is:
rabbitmq-server


#3

Guys, you really need to provide the proper service startup names so your customers don’t have to guess which names you used. Please list out the command to start the service for all the ones listed on this page
Thanks


#4

FYI for other circleci customers, Redis in circle.yml must be enabled with ‘redis’ not with ‘redis-server’


#5

Hi @edwardotis I’m sorry for the slow turnaround. I’ll make sure to put correct service name in our doc when we get out of beta.


#6

It’d be great to have elasticsearch 2.x installed by default, too, as that is the latest major release and has been out for a while.


#7

A few more issues:

  1. I am getting sporadic redis issues, where the service is not started. This is with the following config

machine:
services:
- elasticsearch
- redis
- memcached

It claims to have been started, but running redis commands gives me this error message:

service redis-server status
Starting redis-server: touch: cannot touch ‘/var/run/redis/redis-server.pid’: Permission denied
redis-server is not running

  1. For capybara-webkit, I had to run the following command in dependencies:

sudo apt-get install libqt5webkit5

  1. xmlsec1 library is no longer installed by default, and I had to run in dependencies:

sudo apt-get install libxmlsec1 xmlsec1 libxmlsec1-openssl libxmlsec1-dev

  1. The qt library is out of date and not playing as well with capybara-webkit as newer qt versions

#8

Can you please update nvm on the image to nvm 0.31.0? I’m having trouble setting my Node version to 5 since “nvm alias default 5” doesn’t work on the Ubuntu 14.04 images. It wants a precise version of Node but I’d rather maintain compatibility with the latest version of Node 5.x.