[{"data":1,"prerenderedAt":698},["ShallowReactive",2],{"/en-us/blog/docker-in-docker-with-docker-19-dot-03/":3,"navigation-en-us":35,"banner-en-us":446,"footer-en-us":459,"Steve Azzopardi":671,"next-steps-en-us":683},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":25,"_id":28,"_type":29,"title":30,"_source":31,"_file":32,"_stem":33,"_extension":34},"/en-us/blog/docker-in-docker-with-docker-19-dot-03","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Update: Changes to GitLab CI/CD and Docker in Docker with Docker 19.03","If you are using the Docker in Docker workflow you may need to enable TLS or explicitly turn it off.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","https://about.gitlab.com/blog/docker-in-docker-with-docker-19-dot-03","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update: Changes to GitLab CI/CD and Docker in Docker with Docker 19.03\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Azzopardi\"}],\n        \"datePublished\": \"2019-07-31\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22},[18],"Steve Azzopardi","2019-07-31","\n\nLast week Docker released a new version,\n[19.03](https://docs.docker.com/engine/release-notes/#19030), which\nbrings a few exciting features with it.\n\nOne of the features affects GitLab CI/CD when using the [Docker in Docker\nworkflow](https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker-executor).\nAs of version 19.03, [`docker:dind`](https://hub.docker.com/_/docker)\nwill automatically generate TLS certificates and require using them for\ncommunication. This is from [Docker's official\ndocumentation](https://hub.docker.com/_/docker#tls):\n\n> Starting in 18.09+, the dind variants of this image will automatically generate TLS certificates in the directory specified by the DOCKER_TLS_CERTDIR environment variable.\n> Warning: in 18.09, this behavior is disabled by default (for compatibility). If you use --network=host, shared network namespaces (as in Kubernetes pods), or otherwise have network access to the container (including containers started within the dind instance via their gateway interface), this is a potential security issue (which can lead to access to the host system, for example). It is recommended to enable TLS by setting the variable to an appropriate value (-e DOCKER_TLS_CERTDIR=/certs or similar). In 19.03+, this behavior is enabled by default.\n\nWhen you upgrade to 19.03 (which is done automatically if using\n`docker:dind`) you may start seeing an issue like:\n\n```\ndocker: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?.\n```\n\nTo fix the problem above you have two options:\n\n1. Configure [GitLab Runner](https://docs.gitlab.com/runner/) to use TLS.\n1. Explicitly turn off TLS.\n\nThe shared Runners available on GitLab.com support both workflows, which\nare described in detail below.\n\nYou may notice that we are now also suggesting a specific version such as\n`docker:19.03.0-dind` and not `docker:dind`. This is to help prevent users'\njobs randomly failing when a new update comes out.\n\n## Configure TLS\n\nSince the service `docker:dind` will create the certificates, we need to\nhave the certificate shared between the service and the job container.\nTo do this we have to add a mount inside of the\n[volumes](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersdocker-section)\nunder the `[runners.docker]` section.\n\nFor example:\n\n```toml\n[[runners]]\n  name = \"My Docker Runner\"\n  url = \"http://gitlab.com\"\n  token = \"\"\n  executor = \"docker\"\n  [runners.custom_build_dir]\n  [runners.docker]\n    privileged = true\n    volumes = [\"/certs/client\", \"/cache\"]\n    shm_size = 0\n```\n\nIf you're a GitLab.com user, we've already done the config change above for you on the\nShared Runners.\n\nAlso, update `.gitlab-ci.yml` accordingly to specify the\n`DOCKER_TLS_CERTDIR`\n\n```yml\nimage: docker:19.03.0\n\nvariables:\n  DOCKER_DRIVER: overlay2\n  # Create the certificates inside this directory for both the server\n  # and client. The certificates used by the client will be created in\n  # /certs/client so we only need to share this directory with the\n  # volume mount in `config.toml`.\n  DOCKER_TLS_CERTDIR: \"/certs\"\n\nservices:\n  - docker:19.03.0-dind\n\nbefore_script:\n  - docker info\n\nbuild:\n  stage: build\n  script:\n    - docker build -t my-docker-image .\n    - docker run my-docker-image /script/to/run/tests\n```\n\n## Disable TLS\n\nYou might not have access to update the volume mounting inside of the\n`config.toml`, so the only option is to disable TLS. You can do this by\nsetting the environment variable `DOCKER_TLS_CERTDIR` to an empty value.\n\nFor GitLab.com Shared Runners users this is done already using the\n[environment settings](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section),\nwhich works the same way.\n\n```yml\nimage: docker:19.03.0\n\nvariables:\n  DOCKER_DRIVER: overlay2\n  DOCKER_TLS_CERTDIR: \"\"\n\nservices:\n  - docker:19.03.0-dind\n\nbefore_script:\n  - docker info\n\nbuild:\n  stage: build\n  script:\n    - docker build -t my-docker-image .\n    - docker run my-docker-image /script/to/run/tests\n```\n\nWe would like to thank the rest of the community with all the feedback\nand help throughout\n[#4501](https://gitlab.com/gitlab-org/gitlab-runner/issues/4501).\n\n","news",[23,24],"releases","CI/CD",{"slug":26,"featured":6,"template":27},"docker-in-docker-with-docker-19-dot-03","BlogPost","content:en-us:blog:docker-in-docker-with-docker-19-dot-03.yml","yaml","Docker In Docker With Docker 19 Dot 03","content","en-us/blog/docker-in-docker-with-docker-19-dot-03.yml","en-us/blog/docker-in-docker-with-docker-19-dot-03","yml",{"_path":36,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"data":38,"_id":442,"_type":29,"title":443,"_source":31,"_file":444,"_stem":445,"_extension":34},"/shared/en-us/main-navigation","en-us",{"logo":39,"freeTrial":44,"sales":49,"login":54,"items":59,"search":388,"minimal":419,"duo":433},{"config":40},{"href":41,"dataGaName":42,"dataGaLocation":43},"/","gitlab logo","header",{"text":45,"config":46},"Get free trial",{"href":47,"dataGaName":48,"dataGaLocation":43},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":50,"config":51},"Talk to sales",{"href":52,"dataGaName":53,"dataGaLocation":43},"/sales/","sales",{"text":55,"config":56},"Sign in",{"href":57,"dataGaName":58,"dataGaLocation":43},"https://gitlab.com/users/sign_in/","sign in",[60,104,199,204,309,369],{"text":61,"config":62,"cards":64,"footer":87},"Platform",{"dataNavLevelOne":63},"platform",[65,71,79],{"title":61,"description":66,"link":67},"The most comprehensive AI-powered DevSecOps Platform",{"text":68,"config":69},"Explore our Platform",{"href":70,"dataGaName":63,"dataGaLocation":43},"/platform/",{"title":72,"description":73,"link":74},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":75,"config":76},"Meet GitLab Duo",{"href":77,"dataGaName":78,"dataGaLocation":43},"/gitlab-duo/","gitlab duo ai",{"title":80,"description":81,"link":82},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":83,"config":84},"Learn more",{"href":85,"dataGaName":86,"dataGaLocation":43},"/why-gitlab/","why gitlab",{"title":88,"items":89},"Get started with",[90,95,100],{"text":91,"config":92},"Platform Engineering",{"href":93,"dataGaName":94,"dataGaLocation":43},"/solutions/platform-engineering/","platform engineering",{"text":96,"config":97},"Developer Experience",{"href":98,"dataGaName":99,"dataGaLocation":43},"/developer-experience/","Developer experience",{"text":101,"config":102},"MLOps",{"href":103,"dataGaName":101,"dataGaLocation":43},"/topics/devops/the-role-of-ai-in-devops/",{"text":105,"left":106,"config":107,"link":109,"lists":113,"footer":181},"Product",true,{"dataNavLevelOne":108},"solutions",{"text":110,"config":111},"View all Solutions",{"href":112,"dataGaName":108,"dataGaLocation":43},"/solutions/",[114,138,160],{"title":115,"description":116,"link":117,"items":122},"Automation","CI/CD and automation to accelerate deployment",{"config":118},{"icon":119,"href":120,"dataGaName":121,"dataGaLocation":43},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[123,126,130,134],{"text":24,"config":124},{"href":125,"dataGaLocation":43,"dataGaName":24},"/solutions/continuous-integration/",{"text":127,"config":128},"AI-Assisted Development",{"href":77,"dataGaLocation":43,"dataGaName":129},"AI assisted development",{"text":131,"config":132},"Source Code Management",{"href":133,"dataGaLocation":43,"dataGaName":131},"/solutions/source-code-management/",{"text":135,"config":136},"Automated Software Delivery",{"href":120,"dataGaLocation":43,"dataGaName":137},"Automated software delivery",{"title":139,"description":140,"link":141,"items":146},"Security","Deliver code faster without compromising security",{"config":142},{"href":143,"dataGaName":144,"dataGaLocation":43,"icon":145},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[147,150,155],{"text":148,"config":149},"Security & Compliance",{"href":143,"dataGaLocation":43,"dataGaName":148},{"text":151,"config":152},"Software Supply Chain Security",{"href":153,"dataGaLocation":43,"dataGaName":154},"/solutions/supply-chain/","Software supply chain security",{"text":156,"config":157},"Compliance & Governance",{"href":158,"dataGaLocation":43,"dataGaName":159},"/solutions/continuous-software-compliance/","Compliance and governance",{"title":161,"link":162,"items":167},"Measurement",{"config":163},{"icon":164,"href":165,"dataGaName":166,"dataGaLocation":43},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[168,172,176],{"text":169,"config":170},"Visibility & Measurement",{"href":165,"dataGaLocation":43,"dataGaName":171},"Visibility and Measurement",{"text":173,"config":174},"Value Stream Management",{"href":175,"dataGaLocation":43,"dataGaName":173},"/solutions/value-stream-management/",{"text":177,"config":178},"Analytics & Insights",{"href":179,"dataGaLocation":43,"dataGaName":180},"/solutions/analytics-and-insights/","Analytics and insights",{"title":182,"items":183},"GitLab for",[184,189,194],{"text":185,"config":186},"Enterprise",{"href":187,"dataGaLocation":43,"dataGaName":188},"/enterprise/","enterprise",{"text":190,"config":191},"Small Business",{"href":192,"dataGaLocation":43,"dataGaName":193},"/small-business/","small business",{"text":195,"config":196},"Public Sector",{"href":197,"dataGaLocation":43,"dataGaName":198},"/solutions/public-sector/","public sector",{"text":200,"config":201},"Pricing",{"href":202,"dataGaName":203,"dataGaLocation":43,"dataNavLevelOne":203},"/pricing/","pricing",{"text":205,"config":206,"link":208,"lists":212,"feature":296},"Resources",{"dataNavLevelOne":207},"resources",{"text":209,"config":210},"View all resources",{"href":211,"dataGaName":207,"dataGaLocation":43},"/resources/",[213,246,268],{"title":214,"items":215},"Getting started",[216,221,226,231,236,241],{"text":217,"config":218},"Install",{"href":219,"dataGaName":220,"dataGaLocation":43},"/install/","install",{"text":222,"config":223},"Quick start guides",{"href":224,"dataGaName":225,"dataGaLocation":43},"/get-started/","quick setup checklists",{"text":227,"config":228},"Learn",{"href":229,"dataGaLocation":43,"dataGaName":230},"https://university.gitlab.com/","learn",{"text":232,"config":233},"Product documentation",{"href":234,"dataGaName":235,"dataGaLocation":43},"https://docs.gitlab.com/","product documentation",{"text":237,"config":238},"Best practice videos",{"href":239,"dataGaName":240,"dataGaLocation":43},"/getting-started-videos/","best practice videos",{"text":242,"config":243},"Integrations",{"href":244,"dataGaName":245,"dataGaLocation":43},"/integrations/","integrations",{"title":247,"items":248},"Discover",[249,254,258,263],{"text":250,"config":251},"Customer success stories",{"href":252,"dataGaName":253,"dataGaLocation":43},"/customers/","customer success stories",{"text":255,"config":256},"Blog",{"href":257,"dataGaName":5,"dataGaLocation":43},"/blog/",{"text":259,"config":260},"Remote",{"href":261,"dataGaName":262,"dataGaLocation":43},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":264,"config":265},"TeamOps",{"href":266,"dataGaName":267,"dataGaLocation":43},"/teamops/","teamops",{"title":269,"items":270},"Connect",[271,276,281,286,291],{"text":272,"config":273},"GitLab Services",{"href":274,"dataGaName":275,"dataGaLocation":43},"/services/","services",{"text":277,"config":278},"Community",{"href":279,"dataGaName":280,"dataGaLocation":43},"/community/","community",{"text":282,"config":283},"Forum",{"href":284,"dataGaName":285,"dataGaLocation":43},"https://forum.gitlab.com/","forum",{"text":287,"config":288},"Events",{"href":289,"dataGaName":290,"dataGaLocation":43},"/events/","events",{"text":292,"config":293},"Partners",{"href":294,"dataGaName":295,"dataGaLocation":43},"/partners/","partners",{"backgroundColor":297,"textColor":298,"text":299,"image":300,"link":304},"#2f2a6b","#fff","Insights for the future of software development",{"altText":301,"config":302},"the source promo card",{"src":303},"/images/navigation/the-source-promo-card.svg",{"text":305,"config":306},"Read the latest",{"href":307,"dataGaName":308,"dataGaLocation":43},"/the-source/","the source",{"text":310,"config":311,"lists":313},"Company",{"dataNavLevelOne":312},"company",[314],{"items":315},[316,321,327,329,334,339,344,349,354,359,364],{"text":317,"config":318},"About",{"href":319,"dataGaName":320,"dataGaLocation":43},"/company/","about",{"text":322,"config":323,"footerGa":326},"Jobs",{"href":324,"dataGaName":325,"dataGaLocation":43},"/jobs/","jobs",{"dataGaName":325},{"text":287,"config":328},{"href":289,"dataGaName":290,"dataGaLocation":43},{"text":330,"config":331},"Leadership",{"href":332,"dataGaName":333,"dataGaLocation":43},"/company/team/e-group/","leadership",{"text":335,"config":336},"Team",{"href":337,"dataGaName":338,"dataGaLocation":43},"/company/team/","team",{"text":340,"config":341},"Handbook",{"href":342,"dataGaName":343,"dataGaLocation":43},"https://handbook.gitlab.com/","handbook",{"text":345,"config":346},"Investor relations",{"href":347,"dataGaName":348,"dataGaLocation":43},"https://ir.gitlab.com/","investor relations",{"text":350,"config":351},"Trust Center",{"href":352,"dataGaName":353,"dataGaLocation":43},"/security/","trust center",{"text":355,"config":356},"AI Transparency Center",{"href":357,"dataGaName":358,"dataGaLocation":43},"/ai-transparency-center/","ai transparency center",{"text":360,"config":361},"Newsletter",{"href":362,"dataGaName":363,"dataGaLocation":43},"/company/contact/","newsletter",{"text":365,"config":366},"Press",{"href":367,"dataGaName":368,"dataGaLocation":43},"/press/","press",{"text":370,"config":371,"lists":372},"Contact us",{"dataNavLevelOne":312},[373],{"items":374},[375,378,383],{"text":50,"config":376},{"href":52,"dataGaName":377,"dataGaLocation":43},"talk to sales",{"text":379,"config":380},"Get help",{"href":381,"dataGaName":382,"dataGaLocation":43},"/support/","get help",{"text":384,"config":385},"Customer portal",{"href":386,"dataGaName":387,"dataGaLocation":43},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":389,"login":390,"suggestions":397},"Close",{"text":391,"link":392},"To search repositories and projects, login to",{"text":393,"config":394},"gitlab.com",{"href":57,"dataGaName":395,"dataGaLocation":396},"search login","search",{"text":398,"default":399},"Suggestions",[400,402,406,408,412,416],{"text":72,"config":401},{"href":77,"dataGaName":72,"dataGaLocation":396},{"text":403,"config":404},"Code Suggestions (AI)",{"href":405,"dataGaName":403,"dataGaLocation":396},"/solutions/code-suggestions/",{"text":24,"config":407},{"href":125,"dataGaName":24,"dataGaLocation":396},{"text":409,"config":410},"GitLab on AWS",{"href":411,"dataGaName":409,"dataGaLocation":396},"/partners/technology-partners/aws/",{"text":413,"config":414},"GitLab on Google Cloud",{"href":415,"dataGaName":413,"dataGaLocation":396},"/partners/technology-partners/google-cloud-platform/",{"text":417,"config":418},"Why GitLab?",{"href":85,"dataGaName":417,"dataGaLocation":396},{"freeTrial":420,"mobileIcon":425,"desktopIcon":430},{"text":421,"config":422},"Start free trial",{"href":423,"dataGaName":48,"dataGaLocation":424},"https://gitlab.com/-/trials/new/","nav",{"altText":426,"config":427},"Gitlab Icon",{"src":428,"dataGaName":429,"dataGaLocation":424},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":426,"config":431},{"src":432,"dataGaName":429,"dataGaLocation":424},"/images/brand/gitlab-logo-type.svg",{"freeTrial":434,"mobileIcon":438,"desktopIcon":440},{"text":435,"config":436},"Learn more about GitLab Duo",{"href":77,"dataGaName":437,"dataGaLocation":424},"gitlab duo",{"altText":426,"config":439},{"src":428,"dataGaName":429,"dataGaLocation":424},{"altText":426,"config":441},{"src":432,"dataGaName":429,"dataGaLocation":424},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":447,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"title":448,"titleMobile":448,"button":449,"config":454,"_id":456,"_type":29,"_source":31,"_file":457,"_stem":458,"_extension":34},"/shared/en-us/banner","GitLab 18 & the next step in intelligent DevSecOps.",{"text":450,"config":451},"Watch now",{"href":452,"dataGaName":453,"dataGaLocation":43},"/eighteen/","gitlab 18 banner",{"layout":455},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":460,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"data":461,"_id":667,"_type":29,"title":668,"_source":31,"_file":669,"_stem":670,"_extension":34},"/shared/en-us/main-footer",{"text":462,"source":463,"edit":469,"contribute":474,"config":479,"items":484,"minimal":659},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":464,"config":465},"View page source",{"href":466,"dataGaName":467,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":470,"config":471},"Edit this page",{"href":472,"dataGaName":473,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":475,"config":476},"Please contribute",{"href":477,"dataGaName":478,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":480,"facebook":481,"youtube":482,"linkedin":483},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[485,508,565,594,629],{"title":61,"links":486,"subMenu":491},[487],{"text":488,"config":489},"DevSecOps platform",{"href":70,"dataGaName":490,"dataGaLocation":468},"devsecops platform",[492],{"title":200,"links":493},[494,498,503],{"text":495,"config":496},"View plans",{"href":202,"dataGaName":497,"dataGaLocation":468},"view plans",{"text":499,"config":500},"Why Premium?",{"href":501,"dataGaName":502,"dataGaLocation":468},"/pricing/premium/","why premium",{"text":504,"config":505},"Why Ultimate?",{"href":506,"dataGaName":507,"dataGaLocation":468},"/pricing/ultimate/","why ultimate",{"title":509,"links":510},"Solutions",[511,516,519,521,526,531,535,538,542,547,549,552,555,560],{"text":512,"config":513},"Digital transformation",{"href":514,"dataGaName":515,"dataGaLocation":468},"/solutions/digital-transformation/","digital transformation",{"text":148,"config":517},{"href":143,"dataGaName":518,"dataGaLocation":468},"security & compliance",{"text":137,"config":520},{"href":120,"dataGaName":121,"dataGaLocation":468},{"text":522,"config":523},"Agile development",{"href":524,"dataGaName":525,"dataGaLocation":468},"/solutions/agile-delivery/","agile delivery",{"text":527,"config":528},"Cloud transformation",{"href":529,"dataGaName":530,"dataGaLocation":468},"/solutions/cloud-native/","cloud transformation",{"text":532,"config":533},"SCM",{"href":133,"dataGaName":534,"dataGaLocation":468},"source code management",{"text":24,"config":536},{"href":125,"dataGaName":537,"dataGaLocation":468},"continuous integration & delivery",{"text":539,"config":540},"Value stream management",{"href":175,"dataGaName":541,"dataGaLocation":468},"value stream management",{"text":543,"config":544},"GitOps",{"href":545,"dataGaName":546,"dataGaLocation":468},"/solutions/gitops/","gitops",{"text":185,"config":548},{"href":187,"dataGaName":188,"dataGaLocation":468},{"text":550,"config":551},"Small business",{"href":192,"dataGaName":193,"dataGaLocation":468},{"text":553,"config":554},"Public sector",{"href":197,"dataGaName":198,"dataGaLocation":468},{"text":556,"config":557},"Education",{"href":558,"dataGaName":559,"dataGaLocation":468},"/solutions/education/","education",{"text":561,"config":562},"Financial services",{"href":563,"dataGaName":564,"dataGaLocation":468},"/solutions/finance/","financial services",{"title":205,"links":566},[567,569,571,573,576,578,580,582,584,586,588,590,592],{"text":217,"config":568},{"href":219,"dataGaName":220,"dataGaLocation":468},{"text":222,"config":570},{"href":224,"dataGaName":225,"dataGaLocation":468},{"text":227,"config":572},{"href":229,"dataGaName":230,"dataGaLocation":468},{"text":232,"config":574},{"href":234,"dataGaName":575,"dataGaLocation":468},"docs",{"text":255,"config":577},{"href":257,"dataGaName":5,"dataGaLocation":468},{"text":250,"config":579},{"href":252,"dataGaName":253,"dataGaLocation":468},{"text":259,"config":581},{"href":261,"dataGaName":262,"dataGaLocation":468},{"text":272,"config":583},{"href":274,"dataGaName":275,"dataGaLocation":468},{"text":264,"config":585},{"href":266,"dataGaName":267,"dataGaLocation":468},{"text":277,"config":587},{"href":279,"dataGaName":280,"dataGaLocation":468},{"text":282,"config":589},{"href":284,"dataGaName":285,"dataGaLocation":468},{"text":287,"config":591},{"href":289,"dataGaName":290,"dataGaLocation":468},{"text":292,"config":593},{"href":294,"dataGaName":295,"dataGaLocation":468},{"title":310,"links":595},[596,598,600,602,604,606,608,613,618,620,622,624],{"text":317,"config":597},{"href":319,"dataGaName":312,"dataGaLocation":468},{"text":322,"config":599},{"href":324,"dataGaName":325,"dataGaLocation":468},{"text":330,"config":601},{"href":332,"dataGaName":333,"dataGaLocation":468},{"text":335,"config":603},{"href":337,"dataGaName":338,"dataGaLocation":468},{"text":340,"config":605},{"href":342,"dataGaName":343,"dataGaLocation":468},{"text":345,"config":607},{"href":347,"dataGaName":348,"dataGaLocation":468},{"text":609,"config":610},"Environmental, social and governance (ESG)",{"href":611,"dataGaName":612,"dataGaLocation":468},"/environmental-social-governance/","environmental, social and governance",{"text":614,"config":615},"Diversity, inclusion and belonging (DIB)",{"href":616,"dataGaName":617,"dataGaLocation":468},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":350,"config":619},{"href":352,"dataGaName":353,"dataGaLocation":468},{"text":360,"config":621},{"href":362,"dataGaName":363,"dataGaLocation":468},{"text":365,"config":623},{"href":367,"dataGaName":368,"dataGaLocation":468},{"text":625,"config":626},"Modern Slavery Transparency Statement",{"href":627,"dataGaName":628,"dataGaLocation":468},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":630,"links":631},"Contact Us",[632,635,637,639,644,649,654],{"text":633,"config":634},"Contact an expert",{"href":52,"dataGaName":53,"dataGaLocation":468},{"text":379,"config":636},{"href":381,"dataGaName":382,"dataGaLocation":468},{"text":384,"config":638},{"href":386,"dataGaName":387,"dataGaLocation":468},{"text":640,"config":641},"Status",{"href":642,"dataGaName":643,"dataGaLocation":468},"https://status.gitlab.com/","status",{"text":645,"config":646},"Terms of use",{"href":647,"dataGaName":648,"dataGaLocation":468},"/terms/","terms of use",{"text":650,"config":651},"Privacy statement",{"href":652,"dataGaName":653,"dataGaLocation":468},"/privacy/","privacy statement",{"text":655,"config":656},"Cookie preferences",{"dataGaName":657,"dataGaLocation":468,"id":658,"isOneTrustButton":106},"cookie preferences","ot-sdk-btn",{"items":660},[661,663,665],{"text":645,"config":662},{"href":647,"dataGaName":648,"dataGaLocation":468},{"text":650,"config":664},{"href":652,"dataGaName":653,"dataGaLocation":468},{"text":655,"config":666},{"dataGaName":657,"dataGaLocation":468,"id":658,"isOneTrustButton":106},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",[672],{"_path":673,"_dir":674,"_draft":6,"_partial":6,"_locale":7,"content":675,"config":678,"_id":680,"_type":29,"title":18,"_source":31,"_file":681,"_stem":682,"_extension":34},"/en-us/blog/authors/steve-azzopardi","authors",{"name":18,"config":676},{"headshot":7,"ctfId":677},"steveazz",{"template":679},"BlogAuthor","content:en-us:blog:authors:steve-azzopardi.yml","en-us/blog/authors/steve-azzopardi.yml","en-us/blog/authors/steve-azzopardi",{"_path":684,"_dir":37,"_draft":6,"_partial":6,"_locale":7,"header":685,"eyebrow":686,"blurb":687,"button":688,"secondaryButton":692,"_id":694,"_type":29,"title":695,"_source":31,"_file":696,"_stem":697,"_extension":34},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":45,"config":689},{"href":690,"dataGaName":48,"dataGaLocation":691},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":50,"config":693},{"href":52,"dataGaName":53,"dataGaLocation":691},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1751572808058]