我是 AWS elastic beanstalk 的用户,我有一个小问题。我想用less+node 构建我的CSS 文件。但是在使用 jenkins 构建时,我不知道如何在我的 dockerfile 中安装节点。
这是我在 docker 中使用的安装包。我会很高兴有任何建议。
FROM php:5.6-apache
# Install PHP5 and modules along with composer binary
RUN apt-get update
RUN apt-get -y install \
curl \
default-jdk \
git \
libcurl4-openssl-dev \
libpq-dev \
libmcrypt-dev \
libpq5 \
npm \
node \
zlib1g-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12-dev
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install curl json mbstring opcache pdo_mysql zip gd exif sockets mcrypt
# Install pecl
RUN pecl install -o -f memcache-beta \
&& rm -rf /tmp/pear \
&& echo 'extension=memcache.so' > /usr/local/etc/php/conf.d/memcache.ini
在此之后,我正在使用代码运行我的 entrypoint.sh
#!/usr/bin/env sh
composer run-script post-install-cmd --no-interaction
chmod 0777 -R /var/app/app/cache
chmod 0777 -R /var/app/app/logs
exec apache2-foreground
但是后来我遇到了这个错误
Error Output: [2016-04-04 11:23:44] assetic.ERROR: The template ":tmp:module.html.twig" contains an error: A template that extends another one cannot have a body in ":tmp:module.ht
ml.twig" at line 7.
但是当我以这种方式安装在 Docker 容器节点中时
apt-get install git-core curl build-essential openssl libssl-dev
git clone https://github.com/nodejs/node.git
cd node
./configure
make
sudo make install
node -v
我可以构建我的 CSS。所以问题是..当我用 Jenkins 构建它时,上面的这个安装如何在我的 Dockerfile 中安装?
原文由 Delirium 发布,翻译遵循 CC BY-SA 4.0 许可协议
运行
apt-get install node
不会安装 Node.js ,因为这不是您要的包。如果你运行
apt-cache info node
你可以看到你正在安装的是一个“业余分组无线电节点程序(过渡包)”您应该按照 Node.js 安装说明 通过包管理器进行安装。
或者,如果您喜欢从 git 构建,您可以在 Docker 中执行此操作: