Como posso configurar o Docker para desenvolver e implantar um tema personalizado?

12

Estou começando com o Docker e ainda sou novo nas práticas profissionais de desenvolvimento do WordPress. Gostaria de configurar um ambiente de desenvolvimento do Docker (no meu Mac) para que eu possa fazer o desenvolvimento personalizado do tema WordPress.

Supondo que você já tenha feito isso antes e já esteja usando o Docker, como você configurou isso? Como é o seu Dockerfile e o docker-compose.yml? Tenho certeza que isso já foi feito antes. Eu não ficaria surpreso se já houver um comando de uma linha que possa configurar isso para você.

Atualização: reduzi este tópico à seguinte pergunta:

Como posso configurar o Docker para desenvolver e implantar um tema personalizado?

Andrew
fonte
Eu apenas tive que excluir duas respostas apenas de link. Como sua pergunta tem 8 votos positivos, você se importaria em reduzi-la a uma pergunta que seja solucionável?
Kaiser #
O @kaiser "Desenvolvimento profissional do WordPress" não está muito bem documentado, muitas pessoas (inclusive eu) estão tentando aprender a trabalhar com o WordPress de maneira profissional para desenvolver e implantar temas personalizados do WordPress. O uso do Docker ajuda a criar um ambiente que espelha o ambiente de produção, mas também é um novo território, então eu gostaria de saber como as pessoas estão incorporando o Docker ao fluxo de trabalho de desenvolvimento do WordPress.
Andrew
Andrew, dê uma olhada neste texto para ver que tipo de perguntas mantemos em aberto neste site. Tal como está, sua pergunta é muito subjetiva, aberta e atrai apenas opiniões baseadas ou vincula apenas respostas. Por favor, mude isso, caso contrário, teremos que fechar a pergunta. Obrigado.
Kaiser #
@ Kaiser Ok, eu fiz a minha melhor tentativa de mudar isso para ser uma pergunta mais focada.
Andrew

Respostas:

7

Vou postar uma resposta parcial para iniciar a discussão, na esperança de obter alguns comentários úteis para preencher os espaços em branco ou respostas alternativas ...

Etapa 1: Instalar e configurar o boot2docker

O Docker é executado apenas no Linux. Portanto, para usar o Docker em nosso Mac, precisamos instalar boot2docker, o que executará o Docker em uma VM Linux. Você pode instalar boot2dockerusando o Homebrew :

brew install boot2docker

Depois de concluir a instalação, configure e inicie o boot2docker:

boot2docker init
boot2docker start

Em seguida, precisamos executar um comando para configurar algumas variáveis ​​de ambiente para que o docker-compose saiba como encontrar o Docker dentro da VM do boot2docker.

eval "$(boot2docker shellinit)"

Você pode querer adicionar as linhas que exportam variáveis ​​ao seu, ~/.bash_profilepara não precisar executar o comando toda vez que abrir uma nova janela do terminal.

Etapa 2: Instalar docker-compose

Existe um plug-in do Docker chamado docker-compose(originalmente chamado fig) que facilita muito a definição do relacionamento entre seus contêineres do Docker. Você também pode instalá-lo usando o Homebrew:

brew install docker-compose

Etapa 3: Criar docker-compose.yml

Há uma imagem oficial do WordPress Docker no registro do Docker. Ele inclui algumas informações sobre a inicialização manual do Docker com todos os sinalizadores de linha de comando necessários para que tudo funcione. Até onde eu sei, você pode pular tudo isso porque usaremos docker-compose. No diretório em que você trabalhará no seu tema WordPress, crie um docker-compose.ymlcom o seguinte conteúdo:

wordpress:
  image: wordpress
  links:
    - db:mysql
  ports:
    - 8080:80
  volumes:
    - .:/var/www/html/wp-content/themes/my-theme-name

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

A volumesconfiguração vincula nossos arquivos de temas em nosso diretório atual a um novo diretório de temas dentro do contêiner do Docker.

Etapa 4: iniciar os contêineres

Corre docker-compose up e você configurará dois contêineres do Docker ("wordpress" e "db") executando uma instalação do WordPress.

Etapa 5: abrir o site no navegador

Nossa docker-compose.ymlconfiguração especificava que estamos encaminhando a porta 80 para a porta 8080. Além disso, boot2dockerexecuta sua VM em um endereço IP específico. Assim, para descobrir a URL, precisamos usar o boot2docker ipcomando:

open http://$(boot2docker ip):8080

Questões

Agora que tenho os contêineres em funcionamento, tenho algumas perguntas ...

  1. Existe uma maneira automatizada de configurar as variáveis ​​de ambiente do boot2docker, além de copiar e colar as exportações listadas em boot2docker shellinit?

  2. Quando estou trabalhando em um aplicativo Rails, gosto de usar o Pow para poder acessar o aplicativo usando um .devdomínio nomeado, em vez de trabalhar com portas / IPs específicos. Como posso configurar meu sistema (ou Pow) para acessar o host usando o http://mysite.dev ?

  3. Há algumas etapas que eu perdi? Ou existem etapas que devem ser adicionadas ao final?

Andrew
fonte
Para sua segunda pergunta. Você pode experimentar o proxy docker nginx: github.com/jwilder/nginx-proxy .
Zhe Li
0

Minha solução preferida para isso é usar o Composer em combinação com o Docker. O Docker lida com o ambiente, o Composer lida com as dependências, que incluem temas, plugins e quaisquer outros pacotes que eu possa precisar.

Aqui está minha própria configuração local do Docker:

https://github.com/alexmacarthur/wp-skateboard

E aqui está um ramo que usa o Composer para baixar o tema _s e colocá-lo no meu themesdiretório:

https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

Alex MacArthur
fonte