Andrey
Ошибка при переносе: Error: ResponseItem.ErrorDetail[code=<null>,message=COPY failed: stat /var/lib/docker/tmp/docker-builder681193942/opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar: no such file or directory]
в builder у тебя стоит: COPY /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar /tmp Значит в итоговом имедже делай COPY --from=builder /tmp/account-service-all-0.0.1-SNAPSHOT.jar .
Joe
в builder у тебя стоит: COPY /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar /tmp Значит в итоговом имедже делай COPY --from=builder /tmp/account-service-all-0.0.1-SNAPSHOT.jar .
Андрей благодарочка для отладки сделал так! FROM gradle:jdk8 as builder COPY ./qa-automation /opt USER root RUN rm /opt/.gitignore RUN rm -rf /opt/.git RUN cd /opt/account-service/ && gradle fatjar --stacktrace FROM openjdk:8-jre EXPOSE 9000 COPY --from=builder /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Joe
Да чтобы лишнее не тянуть в контейнер
Andrey
Да чтобы лишнее не тянуть в контейнер
Оно умрет у тебя с первым контейнером. Первый контейнер(в котором идет сборка) он тебе нафиг не нужен. Все что из него потом достается это jar'ник
Joe
Блин точно
Joe
Все спать )))
Andrey
Я б вот так сделал 🙂 FROM gradle:jdk8 as builder COPY ./qa-automation /opt RUN cd /opt/account-service/ && gradle fatjar --stacktrace FROM openjdk:8-jre COPY --from=builder /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 9000
Joe
@rheinx Для сборки нужен root А в остальном все идентично
Andrey
@rheinx Для сборки нужен root А в остальном все идентично
А по дефолту он разве не от рута в этом образе стартует?)
Joe
А по дефолту он разве не от рута в этом образе стартует?)
нет от имени gradle Step 3/8 : RUN whoami ---> Running in 9560e031a601 gradle
Илья
Привет всем. Есть вопрос. Необходимо выполнить два php скрипта в php-cli при сборке контейнера cd /var/www && php ./init --env=Development --overwrite=y cd /var/www && php ./yii migrate --interactive=0 Первую выполняет и отваливается. Т.е. вылетает Желательно чтобы выполнил их и не вылетел
stanopolous
Что значит «вылетает»?
Илья
Ну заканчивает работу и exit
Илья
Т.е. нет в docker ps
stanopolous
Докерфайл в студию
Илья
Часть compose php-cli: container_name: php-cli build: context: ./docker dockerfile: php-cli.docker depends_on: - mysql volumes: - ./www:/var/www tty: true networks: - net Файл FROM php:7.0-cli RUN apt-get update && apt-get install -y libmcrypt-dev wget \ && docker-php-ext-install mcrypt pdo pdo_mysql ADD ./php/default.ini /usr/local/etc/php/conf.d/default.ini Сейчас пока так Выполнение пробовал через CMD
Илья
Команды необходимо выполнить эти cd /var/www && php ./init --env=Development --overwrite=y cd /var/www && php ./yii migrate --interactive=0
Илья
Не оч хочется пилить отдельный контейнер для каждой команды Пусть даже временный
Mikhail
А где выполнение команд то?
Илья
Я сделал так сейчас RUN chmod -R 777 /var/www && \ wget https://getcomposer.org/installer -O - -q | php -- --install-dir=/bin --filename=composer --quiet && \ composer global require --prefer-dist "fxp/composer-asset-plugin:~1.1.3" && \ composer create-project --prefer-dist --stability=dev --no-interaction yiisoft/yii2-app-advanced .
Илья
php composer ставит софт но после того как заканчивает в папке пусто
Илья
А если зайти в контейнер и запустить там То фйлы появляются
Ильдар
Магии не бывает. . в конце команды означает текущую директорию? а какая это именно директория?
Mikhail
Я бы ставил композер из другого образа через мультистейдж
Илья
Не помогло
Илья
Я бы ставил композер из другого образа через мультистейдж
Тут проблема не в композере. Он ставится норм. А вот фреймворк вроде бы как ставится (виден прогресс в консоли) Но по сути после установки папка пуста
Mikhail
Попробуй выполнить эти шаги вручную
Илья
Перейдя в контейнер?
Илья
Тогда все ок будет
Илья
Внутри контейнера все создается итд
Ильдар
Пробовал указать полный путь
этот путь случайно не /var/www?
Илья
Ага он
Илья
В compose докера прокинуто так volumes: - ./www:/var/www - ./docker/composer:/root/composer
Ильдар
в папке ./www на хосте смотрел? )
Илья
У меня винда)
Илья
10-ка
Илья
Но куда-то он же ставит, цобака
Ильдар
*гадаю по фотографии* в контейнере он ставит в /var/www, в которую смонтирована папка хоста ./www
Ильдар
посмотри рядом с docker-compose.yml, не лежит ли там папка www?
Илья
Есть такая Я ее сам создал Чтобы он туда стаивл файло
Илья
И пробросил ее в var www
Ильдар
она пустая на хосте?
Илья
ага
Илья
Если зайду в контейнер Перейду в папку var/www и там выплню команду установки То файлы появятся и на хосте и в контейнере
Илья
Оке
Илья
Кстати идея
Илья
Writing lock file Generating autoload files /var/www Removing intermediate container 6de961e88e8a ---> 5e2023634db1
Илья
Получается var/www и она пустая
Pin
Всем привет! Подскажите пожалуйста как в контейнер прокинуть env переменные?
Илья
environment: - REDIS_HOST=localhost
Илья
или ключ -e вроде бы
Pin
вот я -e VAR=VAL делаю, почему-то не пробрасывает
Илья
Вот для БД пример
Илья
environment: MYSQL_ROOT_PASSWORD: rootpasswd MYSQL_DATABASE: demeter MYSQL_USER: user MYSQL_PASSWORD: passwd
Илья
Кавычки?
Илья
-e "VAR=VAL"
Pin
нет, мне нужно именно при запуске контейнера, т.е. docker run image -e API_LOGIN='staging'
Pin
вот таким образом пытаюсь
Pin
если жестко Dockerfile вхардкодить - то работает
Илья
Попробуй docker run image -e "API_LOGIN=staging"
Pin
секунду, спасибо
Алексей
секунду, спасибо
docker-compose есть?
Pin
docker-compose есть?
мне не нужен compose
Pin
это обычный Dockerfile
Pin
похоже вот так ARG YOURAPP_ENV=production ENV YOURAPP_ENV="${YOURAPP_ENV}"
RusaXXX
Всем привет, подскажите пжл. Установил докер на сервер. При проверке состояние перед первым запуском выдает Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details
Илья
Логи надо смотреть
Илья
Так не сказать. Может быть все, что угодно
RusaXXX
Логи докера или системы?
Илья
Докера)
Илья
systemctl status docker.service
Илья
Обычно кусок показывает из логов
Илья
Последний
RusaXXX
docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: inactive (dead) (Result: exit-code) since Thu 2018-11-08 01:39:30 EST; 14min ago Docs: https://docs.docker.com Process: 720 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE) Main PID: 720 (code=exited, status=1/FAILURE)