diff --git a/Dockerfile b/Dockerfile index b6bd16a42..3dd086889 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,12 +3,49 @@ # FROM microsoft/aspnetcore-build:2.0.3-jessie as builder +# Install runtime dependencies +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates bzip2 libfontconfig \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + + # Install official PhantomJS release +RUN set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + && mkdir /srv/var \ + && mkdir /tmp/phantomjs \ + # Download Phantom JS + && curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar -xj --strip-components=1 -C /tmp/phantomjs \ + # Copy binaries only + && mv /tmp/phantomjs/bin/phantomjs /usr/local/bin \ + # Create symbol link + # Clean up + && apt-get autoremove -y \ + && apt-get clean all \ + && rm -rf /tmp/* /var/lib/apt/lists/* + +RUN phantomjs --version + +COPY src/Squidex/package.json /tmp/package.json + +# Install Node packages +RUN cd /tmp && npm install + COPY . . WORKDIR / +# Build Frontend +RUN cp -a /tmp/node_modules /src/Squidex/ \ + && cd /src/Squidex \ + && npm run test:coverage \ + && npm run build:copy \ + && npm run build + # Test Backend -RUN dotnet test tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj \ +RUN dotnet restore \ + && dotnet test tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj \ && dotnet test tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj \ && dotnet test tests/Squidex.Domain.Apps.Read.Tests/Squidex.Domain.Apps.Read.Tests.csproj \ && dotnet test tests/Squidex.Domain.Apps.Write.Tests/Squidex.Domain.Apps.Write.Tests.csproj \