Когда я использую команду COPY в моем Dockerfile, чтобы перезаписать определенный файл (в этом случае я пытаюсь изменить предупреждение в редакторе SQLAlchemy, когда оно сохраняется, только одно из изменений, которые я хотите выполнить), изменения видны в коде и оболочке контейнера Docker, но не отображаются, когда я запускаю код.
В файле Docker я добавил командную строку копирования перед командой RUN, которая уже была в нашем файле Docker.
...
COPY actions.js /usr/local/lib/python3.6/site-packages/superset/static/assets/src/SqlLab/actions.js
RUN chmod +x /superset-init.sh
Сам файл, который я пытаюсь скопировать, помещается в тот же каталог, что и Dockerfile, в соответствии с необходимостью, и вносятся следующие изменения (не масштабные, это просто для определения того, что изменения действительно обрабатываются)
До:
export function saveQuery(query) {
const url = '/savedqueryviewapi/api/create';
$.ajax({
type: 'POST',
url,
data: query,
success: () => notify.success(t('Your query was saved')),
error: () => notify.error(t('Your query could not be saved')),
dataType: 'json',
});
return { type: SAVE_QUERY };
}
После того, как:
export function saveQuery(query) {
const url = '/savedqueryviewapi/api/create';
$.ajax({
type: 'POST',
url,
data: query,
success: () => notify.success(t('Your query was saved and stored')),
error: () => notify.error(t('Your query could not be saved')),
dataType: 'json',
});
return { type: SAVE_QUERY };
}
Как уже упоминалось, я пытался скопировать код с помощью команды docker COPY, но это не сработало. Это работало при копировании поверх стандартных файлов HTML, но не этих файлов JS.
КОПИЯ КОМАНДЫ
COPY actions.js /usr/local/lib/python3.6/site-packages/superset/static/assets/src/SqlLab/actions.js
Если это работает, оповещение должно измениться, и любые другие изменения, которые я внесу в функции JS, должны быть видны.
UPDATE
Решение может заключаться в добавлении nvm, node и npm в мой dockerfile, чтобы можно было наблюдать за изменениями в моих файлах Javascript.