ci-cd VS Docker Compose

Compare ci-cd vs Docker Compose and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ci-cd Docker Compose
6 390
- 32,539
- 1.2%
- 9.6
- 1 day ago
Go
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ci-cd

Posts with mentions or reviews of ci-cd. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-16.
  • Atlassian prepares to abandon on-prem server products
    6 projects | news.ycombinator.com | 16 Oct 2023
    Thanks for your feedback. GitLab team member here.

    > We(as in everyone) are in a serious need of a new git server product. Just do git serving, and do it well. Preferably in a way multiple nodes can be run active-active for scaling and reliability. No need for cicd (Jenkins is fine for that, thank you very much).

    You can integrate Jenkins into GitLab. https://docs.gitlab.com/ee/integration/jenkins.html Suggest considering a migration to GitLab CI/CD in your migration planning, following the updated documentation: https://docs.gitlab.com/ee/ci/migration/jenkins.html and more automated imports in https://about.gitlab.com/blog/2023/09/26/atlassian-server-en...

    > Web hooks sending and receiving. For example launch a merge request webhook(to lambda via aws api gateway, or to Jenkins). Receive a webhook as merge request approval when some Jenkins job finishes.

    (FYI) https://docs.gitlab.com/ee/user/project/integrations/webhook... and https://docs.gitlab.com/ee/user/project/integrations/webhook...

    You can trigger a pipeline from external webhooks using a trigger token, and execute an action against the GitLab REST API. The example for triggering pipelines in https://docs.gitlab.com/ee/ci/triggers/#trigger-a-pipeline can be expanded into more actions, i.e. using the API to create MR approvals or comments.

    For Python, I'd recommend looking into python-gitlab and this tutorial blog post: https://about.gitlab.com/blog/2023/02/01/efficient-devsecops...

    > if you create cicd jobs/pipelines there is no way to giving someone an ability to run that pipeline without giving that person ability to push to the repository and submit merge requests. Yes, you can then set it so approval is needed before merge, protecting said pipeline, but why? There has been a ticket on gitlabs own issues page about it for years and it is still not resolved.

    Please share the URL :)

    When creating a new GitLab project, the default branch is protected by default, and only maintainer roles can push to the default branch. https://docs.gitlab.com/ee/user/project/protected_branches.h...

    A developer role can create non-protected Git branches, merge requests, and as such trigger a pipeline from a merge request. You've mentioned approval rules as a safeguard already - CODEOWNERS can be an additional way to ensure that review workflows are followed. https://docs.gitlab.com/ee/user/project/codeowners/

    You can also use branch protection rules to allow `No one` for push actions, i.e. any branch that matches the pattern, except for `main` or git tag patterns. https://docs.gitlab.com/ee/user/project/protected_branches.h...

    > Gitlab enterprise has no mode of working that let's you have more than one active server at a time so goodbye horizontal scaling.

    Suggest reviewing the reference architectures documentation in https://docs.gitlab.com/ee/administration/reference_architec... to decide whether horizontal scaling is needed for your environment.

    For distributed environments, suggest looking into Geo: https://docs.gitlab.com/ee/administration/geo/index.html

    > You want to scale your cicd worker nodes? They want you to use docker mashine(a deprecated product) instead of writing a Plugin like ec2-fleet for Jenkins.

    The current GitLab CI/CD runner architecture involves docker-machine, based on a fork maintained by GitLab. This fork receives security and bug fixes to ensure users and customers can rely on auto-scaling in production. https://gitlab.com/gitlab-org/ci-cd/docker-machine#%EF%B8%8F... Please review the support statement in https://gitlab.com/groups/gitlab-org/-/epics/2502 to learn more for how long the fork remains supported.

    The new auto-scaling architecture provides a task scheduler, and so-called fleeting plugins. You can review the architecture blueprint in https://docs.gitlab.com/ee/architecture/blueprints/runner_sc... and follow the documentation in https://docs.gitlab.com/runner/runner_autoscale/

    If you prefer a timeline, please follow the Docker Machine Replacement Project Plan in https://gitlab.com/groups/gitlab-org/-/epics/6995 For example, the AWS EC2 Fleeting plugin is available in Beta since GitLab 16.5 and scheduled for 16.7 GA, see the epic https://gitlab.com/groups/gitlab-org/-/epics/8856

    When using Kubernetes, you can take advantage of the Kubernetes executor to auto-scale pods. https://docs.gitlab.com/runner/executors/kubernetes.html

    To optimize the CI/CD infrastructure next to auto-scaling, these tips might be handy, too: https://docs.gitlab.com/ee/ci/pipelines/pipeline_efficiency....

    > into saas.

    Next to GitLab self-managed and SaaS, you can also use GitLab Dedicated, where you get access your own isolated cloud instance. https://about.gitlab.com/blog/2023/08/03/building-gitlab-wit...

  • Deploying Serverless GitLab Runners on AWS Fargate with Terraform
    5 projects | dev.to | 11 Nov 2022
    The Fargate driver doesn’t support ECS Exec yet. For more info: https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/fargate/-/issues/49
  • Custom AMI to speed up docker+machine provisioning?
    1 project | /r/gitlab | 9 Mar 2022
    Their fork is, as one might imagine, open source. You can see what it does against a normal Ubuntu system, for example: https://gitlab.com/gitlab-org/ci-cd/docker-machine/-/blob/v0.16.2-gitlab.13/libmachine/provision/ubuntu_systemd.go
  • Docker for Mac Without Docker Desktop
    18 projects | news.ycombinator.com | 28 Jan 2022
    Gitlab maintains a fork of docker-machine with critical bug fixes that I've been using recently since Docker deprecated it: https://gitlab.com/gitlab-org/ci-cd/docker-machine
  • Listing Docker images from Gitlab's registry
    1 project | /r/gitlab | 15 Feb 2021
    Just look at the project https://gitlab.com/gitlab-org/ci-cd/codequality/container_registry

Docker Compose

Posts with mentions or reviews of Docker Compose. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-07.
  • Deploy a Grafana dashboard with Docker on AWS EC2
    2 projects | dev.to | 7 May 2024
    sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
  • Docker Compose: `version` is obsolete
    1 project | news.ycombinator.com | 29 Apr 2024
  • 12 Factor: 13 years later
    3 projects | dev.to | 26 Apr 2024
    Solutions are many, and could include Docker Compose, VS Code dev containers, Telepresence, Localstack or setting up temporary AWS accounts as a development environment for serverless applications.
  • Let's write a simple microservice in Clojure
    7 projects | dev.to | 26 Apr 2024
    Using Docker Compose to run Postgres and any third-party services locally provides a streamlined and consistent development environment. Developers can define services in a docker-compose.yml file, which enables them to configure and launch an entire stack with a single command. In this case, Postgres is encapsulated within a container with predefined configurations. Docker Compose also facilitates easy scaling, updates, and isolation of services, enhancing development efficiency and reducing the setup time for new team members or transitioning between projects. It encapsulates complex configurations, such as Postgres' performance monitoring and logging settings, in a manageable, version-controlled file, simplifying and replicating the service setup across different environments.
  • Live reload em Go com docker e compile daemon
    4 projects | dev.to | 25 Apr 2024
  • Docker compose, orchestrating and automating services
    3 projects | dev.to | 21 Apr 2024
    “Compose simplifies the control of your entire application stack, making it easy to manage services, networks, and volumes in a single, comprehensible YAML configuration file. Then, with a single command, you create and start all the services from your configuration file.” - Docker documentation
  • Hosting a simple docker-compose app with Nginx and generate a SSL with certbot on digitalocean droplet
    2 projects | dev.to | 8 Apr 2024
    curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # Install docker compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # Apply executable permissions to the binary sudo chmod +x /usr/local/bin/docker-compose # Run Project docker-compose up -d
  • One Minute: Compose
    4 projects | dev.to | 30 Mar 2024
    Docker,
  • How to Set Up a Docker Container
    3 projects | dev.to | 13 Mar 2024
    This foundation now opens the door to even more powerful concepts. You can explore more advanced concepts such as container networking, streamlining the management of complex applications with Docker Compose, and how to make your application data persistent using volumes.
  • Use same Dockerfile for Dev & Production
    1 project | dev.to | 8 Feb 2024
    In many projects that are containerized, especially in cases where development is also done locally with docker-compose, teams often have two Dockerfiles, 1 for Development, the other for Production. If you happen to have multiple environments like pre-prod, staging and so on, some teams could have different Dockerfiles for these environments.

What are some alternatives?

When comparing ci-cd and Docker Compose you can also consider the following projects:

podman - Podman: A tool for managing OCI containers and pods.

supervisor - Supervisor process control system for Unix (supervisord)

docker-machine-for-mac - Docker Machine for Mac - an alternative to Docker for Mac

LibreNMS-docker - LibreNMS Docker image

dockerinstall - Docker installation scripts for Windows.

terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

multipass - Multipass orchestrates virtual Ubuntu instances

Portainer - Making Docker and Kubernetes management easy.

fargate-gitlab-runner-terraform

Cloud-Init - unofficial mirror of Ubuntu's cloud-init

k3s - Lightweight Kubernetes

docker-cloudflared - Cloudflared proxy-dns Docker image