Hello
In my ASP.NET Core, I am using Gulp to convert Sass to CSS and minify files ...etc.
In the build step, I need NodeJS present so that Gulp tasks can run.
How do I install NodeJS onto the ASP.NET Core image: microsoft/dotnet:sdk
Thank you.
Jwan,
One way answers your question precisely, but I don't recommend it. The official dockerfile indicates the image uses Debian (I happen to know the code word "stretch" means Debian). That means we can install Node using the Debian package manager:
curl -sL https://deb.nodesource.com/setup_11.x | bash -
apt-get install -y nodejs
What I would recommend instead is using 2 different images. Do the Gulp tasks in 1 Pipeline step using a Node image, pass the resulting files as "artifacts", and then perform the .NET work. That might look something like this (don't read too much into the directory structures, change to fit your case):
pipelines:
default:
- step:
name: Gulp the JavaScript
image: node:11.9.0
caches:
- node
script:
- npm install
- gulp
artifacts: # defining the artifacts to be passed to each future step.
- dist/**
- reports/*.txt
- step:
name: Dotnet the Csharp
image: microsoft/dotnet:2.2-sdk
script:
# using one of the artifacts from the previous step
- cat reports/tests.txt
- dotnet build someproject.sln
Note both images are pinned to a version. Major version numbers are breaking changes, so don't undermine the reliability of your build by pointing to "latest". I find minor and bugfix numbers also useful to pin because they can cause more subtle build problems. When you want to bump the version, put it on a branch, make the change, then merge only when you know it works.
Hope that helps.
Is this answer still valid? I have a configured a similar pipeline but the artifacts from the first node step are not available in the second step which uses dotnet image. Do the images between the steps have to be the same for this to work?
I have also tried the $BITBUCKET_PIPE_STORAGE_DIR and $BITBUCKET_PIPE_SHARED_STORAGE_DIR but those don't seem to work either. They both point to /root when I cd to their locations.
Thanks.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.