Drone: test Docker in Docker

This commit is contained in:
Thomas Sileo 2019-04-12 09:31:39 +02:00
parent 762ae73747
commit f8ae41227d

View file

@ -1,43 +1,50 @@
kind: pipeline peline:
name: default # this code will create a dummy Dockerfile. This is just
# here so that our yaml file is self-contained.
setup:
image: golang
commands:
- |
cat <<EOF > index.html
hello world
EOF
- |
cat <<EOF > Dockerfile
FROM busybox
ADD index.html /www/index.html
EXPOSE 8000
CMD httpd -p 8000 -h /www; tail -f /dev/null
EOF
steps: build:
- name: build image: docker:dind
image: python:3 environment:
volumes: - DOCKER_HOST=tcp://docker:2375
- name: dockersock commands:
path: /var/run/docker.sock - sleep 5
commands: - docker ps
- apt update -y - docker build -t hello-world .
- apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg2 curl python-tk
- curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - # start the container using a detached (non-blocking)
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" # step. Bonus we can see our container logs in the
- apt update -y # build output.
- apt install -y docker-ce run:
- pip install -U pip image: docker:dind
- curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose detach: true
- chmod +x /usr/local/bin/docker-compose environment:
- docker-compose --version - DOCKER_HOST=tcp://docker:2375
- pip install -r dev-requirements.txt commands:
- git clone https://github.com/tsileo/poussetaches.git && cd poussetaches && docker build . -t poussetaches:latest && cd - - docker run -p 8000:8000 hello-world
- mypy --ignore-missing-imports .
- flake8 activitypub.py
- cp -r tests/fixtures/me.yml config/me.yml
- docker build . -t microblogpub:latest
- WEB_PORT=5006 COMPOSE_PROJECT_NAME=instance1 CONFIG_DIR="${pwd}/tests/fixtures/instance1/config" docker-compose -p instance1 -f docker-compose-tests.yml up -d
- COMPOSE_PROJECT_NAME=instance1 docker-compose -p instance1 -f docker-compose-tests.yml ps
- sleep 30
- WEB_PORT=5007 COMPOSE_PROJECT_NAME=instance2 CONFIG_DIR="${pwd}/tests/fixtures/instance2/config" docker-compose -p instance2 -f docker-compose-tests.yml up -d
- COMPOSE_PROJECT_NAME=instance2 docker-compose -p instance2 -f docker-compose-tests.yml ps
- sleep 30
- curl http://localhost:5006
- curl http://localhost:5007
# Integration tests first
# - python -m pytest -v --ignore data -k integration
# Federation tests (with two local instances)
- python -m pytest -v -s --ignore data -k federatio
volumes: # curl the container to test it is up and running.
- name: dockersock # notice that we use `docker:8000` since the container
host: # is running in the docker service container.
path: /var/run/docker.sock test:
image: golang # because I know it has curl installed
commands:
- curl -v http://docker:8000
services:
docker:
image: docker:dind
privileged: truepath: /var/run/docker.sock