Аргумент в Dockerfile не передается как выполненная команда - PullRequest
0 голосов
/ 31 августа 2018

В моем Dockerfile я пытаюсь загрузить последнюю версию WordPress без какого-либо содержимого внутри нее, но у меня возникают проблемы с автоматизацией номера последней версии, так что мне не нужно вручную изменять его, когда новая версия WordPress выходит.

В моем Dockerfile у меня есть

ARG LATESTWPVER="$(curl -s https://api.wordpress.org/core/version-check/1.5/ | head -n 4 | tail -n 1)"
ADD $(https://downloads.wordpress.org/release/wordpress-$LATESTWPVER-no-content.zip) /var/www/latest.zip

Но проблема в том, что мой LATESTWPVER не 4.9.8, и я получаю ошибку

Не удалось добавить ADD: stat /var/lib/docker/tmp/docker-builder962069305/$(https:/downloads.wordpress.org/release/wordpress-$(curl -s https: /api.wordpress.org/core /version-check/1.5/ | head -n 4 | tail -n 1) -no-content.zip): такого файла или каталога нет

Он передает всю команду, и я хотел бы получить выходные данные этой команды.

В моем файле оболочки

#!/bin/bash

WP_LATEST="$(curl -s https://api.wordpress.org/core/version-check/1.5/ | head -n 4 | tail -n 1)"
echo $WP_LATEST

вернет число 4.9.8.

Исходя из ошибки, я предполагаю, что вы можете только присвоить что-то переменной, но не выполнить ее. Есть ли способ выполнить команду, назначить ее переменной и передать в качестве аргумента?

1 Ответ

0 голосов
/ 31 августа 2018

Dockerfile не является оболочкой или скриптом сборки, поэтому он не будет выполнять то, что вы передаете в ARG. Существует обходной путь - определите версию как ARG и передайте ее во время сборки.

Dockerfile:

-

FROM ubuntu:latest
ARG LATESTWPVER
RUN echo $LATESTWPVER
ADD https://downloads.wordpress.org/release/wordpress-$LATESTWPVER-no-content.zip /var/www/latest.zip

docker build --build-arg LATESTWPVER=`curl -s https://api.wordpress.org/core/version-check/1.5/ | head -n 4 | tail -n 1` .
Sending build context to Docker daemon  6.656kB
Step 1/4 : FROM ubuntu:latest
 ---> 113a43faa138
Step 2/4 : ARG LATESTWPVER
 ---> Using cache
 ---> 64f47dcfe7fa
Step 3/4 : RUN echo $LATESTWPVER
 ---> Running in eb5fdd005d77
4.9.8
Removing intermediate container eb5fdd005d77
 ---> 1015629b927e
Step 4/4 : ADD https://downloads.wordpress.org/release/wordpress-$LATESTWPVER-no-content.zip /var/www/latest.zip
Downloading [==================================================>]  7.118MB/7.118MB

 ---> 72f0d3790e51
Successfully built 72f0d3790e51
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...