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?
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?
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
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.
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?