Como eu instalo as dependências do npm & composer em um aplicativo do AWS Elasticbeanstalk Multi-Container Docker através do Dockerfile?

1

Resultado esperado

Você poderia, por favor, aconselhar sobre como instalar dependências npm e composer em minha webroot através do Dockerfile em um aplicativo AWS Elasticbeanstalk Multi-Container Docker?

Situação atual

Eu tenho criado meus arquivos de dentro do contêiner do Docker através do Dockerfile com código como este:

// Dockerfile
...

# npm
WORKDIR /var/www/tmp_html
RUN mkdir -p npm
WORKDIR /var/www/tmp_html/npm
COPY php-app/package.json package.json
RUN npm update && npm install

# composer
... // similar to above

# Switch working directory back to webroot
WORKDIR /var/www/html

Após a implantação, quando eu ssh no contêiner php:fpm da instância, posso ver a seguinte estrutura:

root@3f8bf1xc2a78:/var/www# ls
html  tmp_html

Os arquivos construídos estão em / tmp_html e estou tentando movê-los para / html. através do meu Dockerfile assim:

ONBUILD RUN mv -v ../tmp_html/composer/protected/vendor/* protected/vendor \
    && rm -rf ../tmp_html/composer/protected \
    && mv -v ../tmp_html/composer/* . \
    && mv -v ../tmp_html/npm/* . \
    && rm -rf ../tmp_html

Problema

O problema é que a etapa ONBUILD não está funcionando. No Docker Inspecione o contêiner php: fpm, notei isso: "OnBuild": null. Parece que o onbuild nem sequer correu. Os arquivos nas pastas /html e /tmp_html permanecem os mesmos.

Além disso, se eu EXECUTAR os comandos sem o comando ONBUILD, na janela de encaixe push para o repositório de imagens do docker, o local de destino não poderá ser detectado e se recusará a permitir que eu implante. O erro é: %código%  Eu acho que isso é porque o elasteanstalk não copiou o pacote, então neste ponto a pasta html não está disponível.

    
por clodal 11.03.2017 / 16:12

1 resposta

0

Pare com o diretório temporário. Copie os arquivos para a imagem onde você precisa deles e, em seguida, ao criar a imagem, instale seus módulos npm e seus módulos compositores.

Não sabe por que você quer tê-los na pasta temp e movê-los?

    
por 04.09.2017 / 13:29