{"id":3744,"date":"2017-06-13T07:15:01","date_gmt":"2017-06-13T14:15:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3744"},"modified":"2025-06-13T21:28:57","modified_gmt":"2025-06-14T04:28:57","slug":"deploy-php-couchbase-application-docker-containers","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/deploy-php-couchbase-application-docker-containers\/","title":{"rendered":"Implantar um aplicativo PHP com Couchbase como cont\u00eaineres do Docker"},"content":{"rendered":"<p>No in\u00edcio do ano, escrevi sobre a conteineriza\u00e7\u00e3o de aplicativos escritos em v\u00e1rias tecnologias de desenvolvimento que se comunicam com o Couchbase Server. Por exemplo, escrevi sobre a implanta\u00e7\u00e3o de um aplicativo <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-golang-web-application-couchbase-docker-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Aplicativo Golang com o Docker<\/a>, a <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docker-deploy-containerized-java-couchbase-web-application\/\" target=\"_blank\" rel=\"noopener noreferrer\">Aplicativo Java com o Docker<\/a>e um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-node-js-couchbase-web-application-docker-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Aplicativo Node.js com o Docker<\/a>. Desta vez, vamos dar uma olhada em como implantar um cont\u00eainer PHP que se comunica com um cont\u00eainer do Couchbase Server.<\/p>\n<p>Vamos criar um n\u00f3 do Couchbase provisionado automaticamente e um aplicativo PHP simples que grava e l\u00ea dados do n\u00f3 NoSQL do Couchbase.<\/p>\n<p><!--more--><\/p>\n<p>Primeiro, vamos definir a estrutura do projeto que representar\u00e1 os dois cont\u00eaineres:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">raiz\r\n-- couchbase\r\n-- -- configure.sh\r\n-- Dockerfile\r\n-- php\r\n-- -- aplicativo\r\n-- -- -- index.php\r\n-- -- configura\u00e7\u00e3o\r\n-- -- -- php.ini\r\n-- -- Arquivo do Docker\r\n-- docker-compose.yml<\/pre>\n<p>Cada cont\u00eainer ter\u00e1 seu pr\u00f3prio\u00a0<code><\/code><strong>Dockerfile<\/strong> que conter\u00e1 informa\u00e7\u00f5es de blueprint para nossa configura\u00e7\u00e3o. As\u00a0<strong>docker-compose.yml<\/strong> criar\u00e1 e implantar\u00e1 os cont\u00eaineres usando a porta definida e as informa\u00e7\u00f5es da vari\u00e1vel de ambiente.<\/p>\n<h2>Containeriza\u00e7\u00e3o do aplicativo PHP<\/h2>\n<p>Como este \u00e9 um tutorial de PHP, come\u00e7aremos criando nosso aplicativo PHP simples e colocando-o em cont\u00eaineres. Como queremos automatizar a implanta\u00e7\u00e3o, desenvolveremos nosso aplicativo\u00a0<strong>php.ini<\/strong> localmente e copiando-o durante o processo de compila\u00e7\u00e3o.<\/p>\n<p>Antes de chegarmos a essa parte, vamos adicionar algum c\u00f3digo ao\u00a0<strong>index.php<\/strong> file:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">openBucket(getenv(\"COUCHBASE_BUCKET_NAME\"), getenv(\"COUCHBASE_BUCKET_PASSWORD\"));\r\n\r\n    try {\r\n        $result = $bucket-&gt;get(\"nraboy\");\r\n    } catch (CouchbaseException $e) {\r\n        $bucket-&gt;insert(\"nraboy\", array(\r\n            \"name\" =&gt; \"Nic Raboy\",\r\n            \"social_media\" =&gt; array(\r\n                \"twitter\" =&gt; \"https:\/\/www.twitter.com\/nraboy\",\r\n                \"website\" =&gt; \"https:\/\/www.thepolyglotdeveloper.com\"\r\n            )\r\n        ));\r\n        $result = $bucket-&gt;get(\"nraboy\");\r\n    }\r\n    echo json_encode($result-&gt;value);\r\n\r\n?&gt;<\/pre>\n<p>No c\u00f3digo acima, estamos dizendo que todos os dados impressos estar\u00e3o no formato JSON. Estamos estabelecendo uma conex\u00e3o com um cluster do Couchbase e abrindo um determinado Bucket nesse cluster. O problema aqui \u00e9 que estamos usando vari\u00e1veis de ambiente para definir o cluster e o Bucket. Elas ser\u00e3o definidas no processo de implanta\u00e7\u00e3o.<\/p>\n<p>Com o aplicativo conectado, ele tentar\u00e1 obter um documento do Couchbase por chave. Se esse documento n\u00e3o existir, ele ser\u00e1 criado e, em seguida, obtido. O documento obtido ser\u00e1 impresso como resultado.<\/p>\n<p>Como mencionei anteriormente, este \u00e9 um aplicativo simples, nada sofisticado. Agora podemos nos concentrar no aspecto do Docker desse aplicativo.<\/p>\n<p>Abra o\u00a0<strong>Dockerfile<\/strong> e incluem o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">DE php:5.6.30-apache\r\n\r\nEXECUTAR apt-get update\r\nEXECUTAR o apt-get install -y wget lsb-release\r\nEXECUTAR wget https:\/\/packages.couchbase.com\/releases\/couchbase-release\/couchbase-release-1.0-2-amd64.deb\r\nEXECUTAR dpkg -i couchbase-release-1.0-2-amd64.deb\r\nEXECUTAR rm couchbase-release-1.0-2-amd64.deb\r\nExecute o apt-get update\r\nEXECUTAR apt-get install -y libcouchbase-dev build-essential php5-dev zlib1g-dev\r\nEXECUTAR pecl install pcs-1.3.3\r\nEXECUTAR pecl install couchbase\r\n\r\nWORKDIR \/var\/www\/html\r\n\r\nCOPY .\/configuration\/php.ini \/usr\/local\/etc\/php\/\r\nCOPY .\/application\/ \/var\/www\/html\/\r\n\r\nEXECUTAR chown www-data:www-data . -R<\/pre>\n<p>O texto acima diz que usaremos uma imagem do Apache. Se voc\u00ea j\u00e1 usou o Couchbase com PHP, o que vem a seguir lhe parecer\u00e1 muito familiar. Todo o conjunto de depend\u00eancias foi retirado diretamente do arquivo <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/sdk\/php\/start-using-sdk.html\" target=\"_blank\" rel=\"noopener noreferrer\">Documenta\u00e7\u00e3o PHP do Couchbase<\/a>. O\u00a0<code>CORRER<\/code> significa que as depend\u00eancias ser\u00e3o coletadas no momento da compila\u00e7\u00e3o, n\u00e3o no momento da execu\u00e7\u00e3o.<\/p>\n<p>Com as depend\u00eancias dispon\u00edveis, o\u00a0<strong>php.ini<\/strong> \u00e9 copiado para a imagem, assim como o arquivo\u00a0<strong>index.php<\/strong> arquivo. Isso nos leva ao arquivo\u00a0<strong>php.ini<\/strong> arquivo.<\/p>\n<p>Em vez de colar uma parte longa e desagrad\u00e1vel da configura\u00e7\u00e3o, \u00e9 melhor fazer o download do arquivo\u00a0<strong>php.ini<\/strong> do arquivo oficial <a href=\"https:\/\/github.com\/php\/php-src\/blob\/master\/php.ini-production\" target=\"_blank\" rel=\"noopener noreferrer\">Reposit\u00f3rio PHP no GitHub<\/a>. A \u00fanica altera\u00e7\u00e3o que estamos fazendo \u00e9 em rela\u00e7\u00e3o \u00e0s extens\u00f5es. De acordo com o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/sdk\/php\/start-using-sdk.html\" target=\"_blank\" rel=\"noopener noreferrer\">Documenta\u00e7\u00e3o PHP do Couchbase<\/a>precisamos adicionar o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">extension=couchbase.so<\/pre>\n<p>Localize a se\u00e7\u00e3o de extens\u00f5es e adicione-a l\u00e1.<\/p>\n<p>Neste ponto, a imagem PHP pode ser criada e podemos implant\u00e1-la como um cont\u00eainer. No entanto, vamos planejar com anteced\u00eancia e criar um arquivo Compose.<\/p>\n<p>Abra o\u00a0<strong>docker-compose.yml<\/strong> e inclua o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">vers\u00e3o: '2'\r\n\r\nservi\u00e7os:\r\n\r\n    php:\r\n        build: .\/php\r\n        portas:\r\n            - 8080:80\r\n        ambiente:\r\n            - COUCHBASE_HOST=couchbase\r\n            - COUCHBASE_BUCKET_NAME=default\r\n            - COUCHBASE_BUCKET_PASSWORD=\r\n        reiniciar: sempre<\/pre>\n<p>O texto acima define um servi\u00e7o chamado\u00a0<code>php<\/code> com mapeamentos de portas e vari\u00e1veis de ambiente. Essas vari\u00e1veis correspondem ao que temos no aplicativo PHP. A imagem ser\u00e1 criada a partir do arquivo\u00a0<strong>Dockerfile<\/strong> encontrado no projeto PHP.<\/p>\n<p>Se voc\u00ea definir o\u00a0<code>COUCHBASE_HOST<\/code> para algo remoto, estamos prontos para come\u00e7ar, mas, neste exemplo, usaremos outro cont\u00eainer.<\/p>\n<h2>Coloca\u00e7\u00e3o do Couchbase Server em cont\u00eaineres<\/h2>\n<p>O objetivo de colocar o Couchbase em cont\u00eaineres \u00e9 automatiz\u00e1-lo. J\u00e1 existe uma imagem do Docker para o Couchbase, mas ela n\u00e3o \u00e9 pr\u00e9-provisionada, o que pode levar tempo durante o processo de implementa\u00e7\u00e3o.<\/p>\n<p>Abra o\u00a0<strong>Dockerfile<\/strong> do projeto Couchbase e inclua o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">DE couchbase\r\n\r\nCOPIAR configure.sh \/opt\/couchbase\r\n\r\nCMD [\"\/opt\/couchbase\/configure.sh\"]<\/pre>\n<p>O texto acima diz que usaremos a imagem oficial do Couchbase, mas copiaremos um script para ela e o executaremos em tempo de execu\u00e7\u00e3o. Esse script provisionar\u00e1 a inst\u00e2ncia automaticamente.<\/p>\n<p>Abra o\u00a0<strong>configure.sh<\/strong> e inclua os seguintes comandos:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">set -m\r\n\r\n\/entrypoint.sh couchbase-server &amp;\r\n\r\nsleep 15\r\n\r\ncurl -v -X POST https:\/\/127.0.0.1:8091\/pools\/default -d memoryQuota=512 -d indexMemoryQuota=512\r\n\r\ncurl -v https:\/\/127.0.0.1:8091\/node\/controller\/setupServices -d services=kv%2cn1ql%2Cindex\r\n\r\ncurl -v https:\/\/127.0.0.1:8091\/settings\/web -d port=8091 -d username=$COUCHBASE_ADMINISTRATOR_USERNAME -d password=$COUCHBASE_ADMINISTRATOR_PASSWORD\r\n\r\ncurl -i -u $COUCHBASE_ADMINISTRATOR_USERNAME:$COUCHBASE_ADMINISTRATOR_PASSWORD -X POST https:\/\/127.0.0.1:8091\/settings\/indexes -d 'storageMode=memory_optimized'\r\n\r\ncurl -v -u $COUCHBASE_ADMINISTRATOR_USERNAME:$COUCHBASE_ADMINISTRATOR_PASSWORD -X POST https:\/\/127.0.0.1:8091\/pools\/default\/buckets -d name=$COUCHBASE_BUCKET -d bucketType=couchbase -d ramQuotaMB=128 -d authType=sasl -d saslPassword=$COUCHBASE_BUCKET_PASSWORD\r\n\r\nsleep 15\r\n\r\ncurl -v https:\/\/127.0.0.1:8093\/query\/service -d \"statement=CREATE PRIMARY INDEX ON `$COUCHBASE_BUCKET`\"\r\n\r\nfg 1<\/pre>\n<p>O Couchbase Server tem sua pr\u00f3pria API RESTful que estamos tentando consumir com v\u00e1rios comandos cURL. Estamos definindo cotas de mem\u00f3ria, quais servi\u00e7os existem no n\u00f3 e informa\u00e7\u00f5es de autentica\u00e7\u00e3o.<\/p>\n<p>Observe que muitos dos comandos incluem vari\u00e1veis ambientais como\u00a0<code>$COUCHBASE_ADMINISTRATOR_USERNAME<\/code>. Isso ocorre porque vamos pass\u00e1-los por meio do\u00a0<strong>docker-compose.yml<\/strong> da mesma forma que fizemos com o aplicativo PHP.<\/p>\n<p>Abra o\u00a0<strong>docker-compose.yml<\/strong> e fa\u00e7a com que ele se pare\u00e7a com o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">vers\u00e3o: '2'\r\n\r\nservi\u00e7os:\r\n\r\n    couchbase:\r\n        build: .\/couchbase\r\n        portas:\r\n            - 8091:8091\r\n            - 8092:8092\r\n            - 8093:8093\r\n        ambiente:\r\n            - COUCHBASE_ADMINISTRATOR_USERNAME=Administrador\r\n            - COUCHBASE_ADMINISTRATOR_PASSWORD=senha\r\n            - COUCHBASE_BUCKET=padr\u00e3o\r\n            - COUCHBASE_BUCKET_PASSWORD=\r\n\r\n    php:\r\n        build: .\/php\r\n        portas:\r\n            - 8080:80\r\n        ambiente:\r\n            - COUCHBASE_HOST=couchbase\r\n            - COUCHBASE_BUCKET_NAME=default\r\n            - COUCHBASE_BUCKET_PASSWORD=\r\n        reiniciar: sempre<\/pre>\n<p>Inclu\u00edmos outro servi\u00e7o chamado\u00a0<code>couchbase<\/code> com um monte de mapeamentos de portas e vari\u00e1veis de ambiente. No entanto, h\u00e1 algo importante a ser observado aqui. Lembre-se de que o\u00a0<code>COUCHBASE_HOST<\/code> na se\u00e7\u00e3o PHP? Ele tem um host que deve corresponder ao nome do servi\u00e7o do nosso banco de dados, que \u00e9\u00a0<code>couchbase<\/code>.<\/p>\n<h2>Implantar os cont\u00eaineres com o Docker<\/h2>\n<p>Com a base estabelecida, \u00e9 hora de implantar os dois cont\u00eaineres para que tenhamos um conjunto funcional de microsservi\u00e7os.<\/p>\n<p>Na CLI do Docker, execute o seguinte:<\/p>\n<pre class=\"lang:default highlight:0 decode:true\">docker-compose run -d --service-ports --name couchbase couchbase\r\ndocker-compose run -d --service-ports --name php php<\/pre>\n<p>Os comandos acima criar\u00e3o e implementar\u00e3o cada uma das imagens com as portas definidas no arquivo Compose. No navegador da Web, https:\/\/localhost:8091 deve lev\u00e1-lo ao painel do Couchbase Server, e https:\/\/localhost:8080 deve lev\u00e1-lo ao seu aplicativo PHP.<\/p>\n<p>Se for bem-sucedido, voc\u00ea ver\u00e1 as informa\u00e7\u00f5es salvas no banco de dados e exibidas na tela.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Voc\u00ea acabou de ver como conteinerizar e implantar um aplicativo PHP que se comunica com um cont\u00eainer NoSQL do Couchbase. Embora nossa escolha de aplicativo tenha sido simples, ele pode ser facilmente ampliado para algo mais complicado usando qualquer uma das estruturas PHP dispon\u00edveis.<\/p>\n<p>Esse mesmo guia pode ser visto com <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-node-js-couchbase-web-application-docker-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Node.js<\/a>, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-golang-web-application-couchbase-docker-containers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Golang<\/a>e <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docker-deploy-containerized-java-couchbase-web-application\/\" target=\"_blank\" rel=\"noopener noreferrer\">Java<\/a>. Se quiser saber mais sobre a conteineriza\u00e7\u00e3o do Couchbase Server, escrevi uma vers\u00e3o mais completa <a href=\"https:\/\/www.thepolyglotdeveloper.com\/2017\/04\/using-couchbase-docker-deploying-containerized-nosql-cluster\/\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>.<\/p>\n<p>Para obter mais informa\u00e7\u00f5es sobre o SDK PHP do Couchbase, consulte a se\u00e7\u00e3o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/developers\/\" target=\"_blank\" rel=\"noopener noreferrer\">Portal do desenvolvedor do Couchbase<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Earlier in the year I wrote about containerizing applications written in various development technologies that communicate with Couchbase Server. For example, I had written about deploying a Golang application with Docker, a Java application with Docker, and a Node.js application [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1815,1816,9408],"tags":[1554,1519],"ppma_author":[9032],"class_list":["post-3744","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-couchbase-server","category-php","tag-container","tag-docker"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploy a PHP with Couchbase Application as Docker Containers<\/title>\n<meta name=\"description\" content=\"Learn how to deploy a PHP application as a Docker container that communicates with Couchbase Server, also in Docker container format.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-php-couchbase-application-docker-containers\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy a PHP with Couchbase Application as Docker Containers\" \/>\n<meta property=\"og:description\" content=\"Learn how to deploy a PHP application as a Docker container that communicates with Couchbase Server, also in Docker container format.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-php-couchbase-application-docker-containers\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-13T14:15:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:28:57+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Deploy a PHP with Couchbase Application as Docker Containers\",\"datePublished\":\"2017-06-13T14:15:01+00:00\",\"dateModified\":\"2025-06-14T04:28:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/\"},\"wordCount\":956,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"container\",\"docker\"],\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Server\",\"PHP\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/\",\"name\":\"Deploy a PHP with Couchbase Application as Docker Containers\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-06-13T14:15:01+00:00\",\"dateModified\":\"2025-06-14T04:28:57+00:00\",\"description\":\"Learn how to deploy a PHP application as a Docker container that communicates with Couchbase Server, also in Docker container format.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploy a PHP with Couchbase Application as Docker Containers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Implantar um aplicativo PHP com Couchbase como cont\u00eaineres do Docker","description":"Saiba como implantar um aplicativo PHP como um cont\u00eainer do Docker que se comunica com o Couchbase Server, tamb\u00e9m no formato de cont\u00eainer do Docker.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/deploy-php-couchbase-application-docker-containers\/","og_locale":"pt_BR","og_type":"article","og_title":"Deploy a PHP with Couchbase Application as Docker Containers","og_description":"Learn how to deploy a PHP application as a Docker container that communicates with Couchbase Server, also in Docker container format.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/deploy-php-couchbase-application-docker-containers\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2017-06-13T14:15:01+00:00","article_modified_time":"2025-06-14T04:28:57+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Deploy a PHP with Couchbase Application as Docker Containers","datePublished":"2017-06-13T14:15:01+00:00","dateModified":"2025-06-14T04:28:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/"},"wordCount":956,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["container","docker"],"articleSection":["Application Design","Best Practices and Tutorials","Couchbase Server","PHP"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/","url":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/","name":"Implantar um aplicativo PHP com Couchbase como cont\u00eaineres do Docker","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-06-13T14:15:01+00:00","dateModified":"2025-06-14T04:28:57+00:00","description":"Saiba como implantar um aplicativo PHP como um cont\u00eainer do Docker que se comunica com o Couchbase Server, tamb\u00e9m no formato de cont\u00eainer do Docker.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/deploy-php-couchbase-application-docker-containers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deploy a PHP with Couchbase Application as Docker Containers"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, defensor dos desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy \u00e9 um defensor das modernas tecnologias de desenvolvimento m\u00f3vel e da Web. Ele tem experi\u00eancia em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experi\u00eancias de desenvolvimento relacionadas a tornar o desenvolvimento m\u00f3vel e da Web mais f\u00e1cil de entender.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy \u00e9 um defensor das modernas tecnologias de desenvolvimento m\u00f3vel e da Web. Ele tem experi\u00eancia em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experi\u00eancias de desenvolvimento relacionadas a tornar o desenvolvimento m\u00f3vel e da Web mais f\u00e1cil de entender."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=3744"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3744\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=3744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=3744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=3744"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=3744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}