Andrey
Andrey
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
Илья
Привет всем. Есть вопрос. Необходимо выполнить два 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
Попробуй выполнить эти шаги вручную
Илья
Перейдя в контейнер?
Илья
Тогда все ок будет
Илья
Внутри контейнера все создается итд
Илья
Ага он
Илья
В 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
секунду, спасибо
Pin
это обычный Dockerfile
Pin
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)