#linux #dockerfile #podman #buildah
Вопрос:
Чтобы протестировать podman, я попытался создать минимальное изображение «привет, контейнер». В моем каталоге src у меня есть файл настройки и main.cpp. main.cpp :
#include <iostream>
int main(int argc, char ** argv)
{
std::cout << "Hello container" << std::endl;
}
Файл Dockerfile :
FROM gcc:6.3 AS build
COPY . /usr/src/testCpp
WORKDIR /usr/src/testCpp
RUN g -o simpleapp2 main.cpp
FROM alpine:latest
RUN apk update amp;amp; apk add --no-cache libstdc
WORKDIR /usr/bin/testCpp
COPY --from=0 /usr/src/testCpp/simpleapp2 .
# Run the output program from the previous step
CMD ["./simpleapp2"]
Я получаю изображение, но когда я пытаюсь выполнить изображение с помощью команды «podman run 6c7cdfe0f023», я получаю сообщение об ошибке «standard_init_linux.go:228: пользовательский процесс exec вызван: нет такого файла или каталога»?
Моя ОС-RH 7.5, версия build-1.11.6, а версия podman-1.6.4. Когда я просматриваю каталог $HOME/.local/общий доступ/контейнеры/хранилище/наложение/, я вижу файл simpleapp2 в diff/usr/bin/testCpp/.
Спасибо за вашу помощь.
Ответ №1:
Причина, по которой мое приложение не было запущено, заключается только в том, что изображение alpine не содержит всех библиотек, необходимых моему приложению. просто заменив alpine на centos или debian, выполнение будет успешным. Теперь мне нужно найти способ получить журналы 🙂
с уважением,