Can be used with [Private docker registry](Private%20docker%20registry.md) to deploy things using #docker. ## Pushing to private docker_registry You should specify `global_docker_login`, `global_docker_password`, `global_docker_registry` organizations variables in your **drone**. And `docker_repo` variable for your repo as `docker.yourdomain.com/your-image`. This is example of `.droneci` for [private docker registry](Private%20docker%20registry.md): ```yaml kind: pipeline name: build type: docker platform: os: linux arch: amd64 steps: - name: build-master image: plugins/docker when: branch: - master settings: dockerfile: Dockerfile tag: - ${DRONE_BRANCH} username: from_secret: global_docker_login password: from_secret: global_docker_password registry: from_secret: global_docker_registry repo: from_secret: docker_repo ``` ## Docker-compose file for drone-ci The `drone` service is ui itself and `drone-agent` is runner for builds, that can be started on different machine (or machines). Change `secret_id`, `rpc_secret` and `drone.url` to something you like. ```yaml version: "3" services: drone: container_name: drone image: drone/drone:latest environment: - DRONE_GITHUB_CLIENT_ID=secret_id - DRONE_GITHUB_CLIENT_SECRET=client_secret - DRONE_RPC_SECRET=rpc_secret - DRONE_SERVER_HOST=drone.url - DRONE_USER_CREATE="username:user,admin:true" - DRONE_SERVER_PROTO=https - DRONE_TLS_AUTOCERT=false - DRONE_GIT_ALWAYS_AUTH=false - DRONE_LOGS_DEBUG=true - DRONE_LOGS_TRACE=true restart: always volumes: - ./data:/data ports: - 8090:80 drone-agent: container_name: drone__agent image: drone/agent:latest command: agent restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_RPC_SERVER=https://drone.url - DRONE_RPC_SECRET=rpc_secret ``` ## Caching builds Haven't checked that yet, but there's a [manual](https://laszlo.cloud/the-ultimate-droneci-caching-guide) from [Laszlo Fogas](https://laszlo.cloud/) about that. ## Get user info ```shell export DRONE_SERVER=https://drone.url export DRONE_TOKEN=password drone info ``` ## Mark user as trusted Sometimes it won't help, then connect to drone database with sqlite and change user's trusted flag to `1`. ```shell drone repo update $1 --trusted=true && drone repo info $1 ```