Commit b1d26316 authored by Aurélien Dunand's avatar Aurélien Dunand
Browse files

Add Dockerfile

parent 68f31c10
Loading
Loading
Loading
Loading

.dockerignore

0 → 100644
+13 −0
Original line number Diff line number Diff line
.git*
*.pyc
*~
*.swp
debsource
dist
venv
*.egg-info
*.coverage
*.cache
__pycache__
Dockerfile
.dockerignore
+1 −0
Original line number Diff line number Diff line
*.pyc
doc/_build/*
build
*.swp
*.swo
*.log

.gitlab-ci.yml

0 → 100644
+29 −0
Original line number Diff line number Diff line
stages:
  - build

.docker_build: &docker_build
  stage: build
  image: docker:latest
  services:
    - docker:dind
  variables:
    DOCKER_DRIVER: overlay2
    IMAGE_TAG: $CI_REGISTRY_IMAGE/ci:$CI_COMMIT_SHA
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker pull $CI_REGISTRY_IMAGE:master || true  # Retrieve "master" version to use it as cache since the build is run using DinD

docker_ci_image:
  <<: *docker_build
  script:
    - docker build --cache-from $CI_REGISTRY_IMAGE:master -t $IMAGE_TAG .
    - docker push $IMAGE_TAG

docker_image:
  <<: *docker_build
  script:
    - docker build --cache-from $CI_REGISTRY_IMAGE:master -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
  only:
    - master
    - tags

Dockerfile

0 → 100644
+31 −0
Original line number Diff line number Diff line
FROM pypy:2-5.10-slim

RUN groupadd -r cc-server && useradd --no-log-init -r -g cc-server cc-server \
        && install -d -o cc-server -g cc-server /var/lib/cc-server \
VOLUME ["/var/lib/cc-server"]
WORKDIR /opt/cc-server

COPY requirements.txt .
COPY README .
COPY setup.py .
COPY bin ./bin
COPY cloudcontrol ./cloudcontrol
RUN set -ex \
        && buildDeps=' \
        build-essential \
        git \
        ' \
        && apt-get -y update && apt-get install -y --no-install-recommends $buildDeps ssl-cert \
        && pip install --no-cache-dir -r requirements.txt -e . \
        && find /usr/local \
        \( -type d -a -name test -o -name tests \) \
        -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
        -exec rm -rf '{}' + \
        && apt-get purge -y --auto-remove $buildDeps \
        && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY docker-entrypoint.sh .
COPY etc/cc-server.conf.docker /etc/cc-server.conf
ENTRYPOINT ["./docker-entrypoint.sh"]
CMD ["pypy", "./bin/cc-server", "-s", "-f"]
EXPOSE 1984

docker-entrypoint.sh

0 → 100755
+13 −0
Original line number Diff line number Diff line
#!/bin/sh

# Only run automatically on container creation
if [ ! -f /var/lib/cc-server/container_init_ok ]; then
    # Generate self signed certif
    make-ssl-cert generate-default-snakeoil --force-overwrite >/dev/null 2>/dev/null
    # cc-server read cert and key on each connection, even after dropping
    # privileges, so this must be allowed
    chown -R cc-server /etc/ssl/private/
    touch /var/lib/cc-server/container_init_ok
fi

exec "$@"
Loading