Docker tmpfs support

We have tests that run about 100x quicker when connected to a tmpfs-backed MySQL. This is supported by Docker as of 1.10, but seems to cause errors in CircleCI. Is tmpfs unsupported?

This command works properly on my local machine. Do I need to do something different for CircleCI?

$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=foo -e MYSQL_USER=foo -e MYSQL_PASSWORD=foo --tmpfs=/tmpfs mysql:5.7 --datadir=/tmpfs
Initializing database
2017-02-16T20:12:27.070450Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-02-16T20:12:27.124822Z 0 [Warning] InnoDB: Retry attempts for writing partial data failed.
2017-02-16T20:12:27.124871Z 0 [ERROR] InnoDB: Write to file ./ib_logfile1failed at offset 4194304, 1048576 bytes should have been written, only 0 were written. Operating system error number 28. Check that your OS and file system support files of this size. Check also that the disk is not full or a disk quota exceeded.
2017-02-16T20:12:27.124898Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'
2017-02-16T20:12:27.124913Z 0 [ERROR] InnoDB: Cannot set log file ./ib_logfile1 to size 48 MB
2017-02-16T20:12:27.124926Z 0 [ERROR] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again.
2017-02-16T20:12:27.725740Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-02-16T20:12:27.725772Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-02-16T20:12:27.725781Z 0 [ERROR] Failed to initialize plugins.
2017-02-16T20:12:27.725786Z 0 [ERROR] Aborting
1 Like

Hi, I am interested as well. My docker image fails to start with tmpfs mapping on CircleCI.
I tried to map mongodb data directory with tmpfs like this:

  mongodb:
    image: mongo:3.2
    tmpfs:
      - /data/db

But it fails on circle ci with:

ERROR: for mongodb  Cannot start service mongodb: 
Cannot start container <container-id>: Duplicate mount point '/data/db'

Anyone had success using tmpfs CircleCI 1.0/2.0 with any database?

Your best bet would be using CircleCI 2.0 with the machine executor. https://circleci.com/docs/2.0/configuration-reference/#machine

It is now possible to use tmpfs with CircleCI’s Docker executor: https://circleci.com/docs/2.0/executor-types/#ram-disks