68 lines
1.9 KiB
Docker
Executable File
68 lines
1.9 KiB
Docker
Executable File
# create the build instance
|
|
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build
|
|
|
|
WORKDIR /src
|
|
COPY ./src ./
|
|
|
|
WORKDIR /src/Presentation/Nop.Web
|
|
|
|
# build project
|
|
RUN dotnet build Nop.Web.csproj -c Release
|
|
|
|
# build plugins
|
|
WORKDIR /src/Plugins
|
|
RUN set -eux; \
|
|
for dir in *; do \
|
|
if [ -d "$dir" ]; then \
|
|
dotnet build "$dir/$dir.csproj" -c Release; \
|
|
fi; \
|
|
done
|
|
|
|
# publish project
|
|
WORKDIR /src/Presentation/Nop.Web
|
|
RUN dotnet publish Nop.Web.csproj -c Release -o /app/published
|
|
RUN cp App_Data/appsettings.Production.json /app/published/App_Data/appsettings.json
|
|
RUN cp App_Data/plugins.Installed.json /app/published/App_Data/plugins.json
|
|
|
|
WORKDIR /app/published
|
|
|
|
RUN mkdir logs bin
|
|
|
|
RUN chmod 775 App_Data \
|
|
App_Data/DataProtectionKeys \
|
|
bin \
|
|
logs \
|
|
Plugins \
|
|
wwwroot/bundles \
|
|
wwwroot/db_backups \
|
|
wwwroot/files/exportimport \
|
|
wwwroot/icons \
|
|
wwwroot/images \
|
|
wwwroot/images/thumbs \
|
|
wwwroot/images/uploaded \
|
|
wwwroot/sitemaps
|
|
|
|
# create the runtime instance
|
|
FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS runtime
|
|
|
|
# add globalization support
|
|
RUN apk add --no-cache icu-libs icu-data-full
|
|
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
|
|
|
# installs required packages
|
|
RUN apk add tiff --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/main/ --allow-untrusted
|
|
RUN apk add libgdiplus --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community/ --allow-untrusted
|
|
RUN apk add libc-dev tzdata --no-cache
|
|
|
|
# copy entrypoint script
|
|
COPY ./entrypoint.sh /entrypoint.sh
|
|
RUN chmod 755 /entrypoint.sh
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/published .
|
|
|
|
ENV ASPNETCORE_URLS=http://+:80
|
|
EXPOSE 80
|
|
|
|
ENTRYPOINT "/entrypoint.sh" |