Sign inSign up

utarn/aspnetcore5-centos8

By utarn

Updated over 4 years ago

Image
0

1.2K

utarn/aspnetcore5-centos8 repository overview

What are included?

  • Updated CentOS 8.2 with bash shell+git+wget
  • .NET SDK 5 latest version If you install dotnet-sdk from yum, you will only get scheduled build from CentOS which is lagging behind the latest one. This image check the file from the official image, and download the raw installer instead.
  • Wkhtmlpdf
  • TTF font
  • gssntlmssp module for SMTP
This repository is automatically updated every Sunday to ensure the latest version

Basic Usage

FROM utarn/aspnetcore5-centos8:latest AS builder 
WORKDIR /src
COPY aspnetproject/aspnetproject.csproj aspnetproject/
RUN dotnet restore aspnetproject/aspnetproject.csproj
COPY . .
WORKDIR /src/aspnetproject
RUN dotnet publish --output /app --configuration Release

FROM utarn/aspnetcore5-centos8-runtime:latest
WORKDIR /app
COPY --from=builder /app .
ENTRYPOINT ["dotnet", "aspnetproject.dll"]

Usage with PDF supported

FROM utarn/aspnetcore5-centos8:latest AS builder 
WORKDIR /src
COPY aspnetproject/aspnetproject.csproj aspnetproject/
RUN dotnet restore aspnetproject/aspnetproject.csproj
COPY . .
WORKDIR /src/aspnetproject
RUN dotnet publish --output /app --configuration Release

FROM utarn/aspnetcore5-centos8-runtime:latest
WORKDIR /app
COPY --from=builder /app .
RUN mkdir -p /app/wwwroot/wkhtml && cp /usr/local/bin/wkhtmltopdf /app/wwwroot/wkhtml/wkhtmltopdf && chmod +x /app/wwwroot/wkhtml/wkhtmltopdf
ENTRYPOINT ["dotnet", "aspnetproject.dll"]

Basic Command

docker run --name aspnetproject --restart always \
     -e ASPNETCORE_ENVIRONMENT=Production \
     -e ASPNETCORE_URLS=http://*:5000 \
     -e ASPNETCORE_preventHostingStartup=True \
     -p 127.0.0.1:5000:5000 \
     -d utarn/aspnetproject

ASP.NET Core with Postgresql

ASP.NET Core Instance

docker run --name aspnetproject --restart always \
     -e ASPNETCORE_ENVIRONMENT=Production \
     -e ASPNETCORE_URLS=http://*:5000 \
     -e ASPNETCORE_preventHostingStartup=True \
     -p 127.0.0.1:5000:5000 \
     --network aspnet \
     -d sampleweb:latest

Postgresql Instance

docker run \
    -d \
    -v /root/database:/bitnami/postgresql \
    --name postgresql \
    -e POSTGRESQL_USERNAME=postgres \
    -e POSTGRESQL_PASSWORD=password \
    -e POSTGRESQL_DATABASE=sample_deploy \
    --restart always \
    --network aspnet \
    bitnami/postgresql:12

Basic docker-compose

version: '3'

services:
  postgresql:
     image: bitnami/postgresql:12
     restart: always
     environment:
         POSTGRESQL_USER: postgres
         POSTGRESQL_PASSWORD: password
         POSTGRESQL_DATABASE: mydatabase
     ports:
       - "127.0.0.1:5432:5432"
     volumes:
       - ./database:/bitnami
    
  webui:
    image: sampleweb:latest
    restart: always
    environment:
        ASPNETCORE_ENVIRONMENT: "Production"
        ASPNETCORE_URLS: "http://*:80"
        ASPNETCORE_preventHostingStartup: "True"
    ports:
       - "127.0.0.1:5000:80"
    
networks:
  default:

Common NGINX configuration

server {
    listen 80;
    server_name demo.thaismartcontract.com;
    client_max_body_size 200M;
    location / {
        client_max_body_size 200M;
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
        proxy_read_timeout 600s;
    }
    gzip on;
    gzip_proxied any;
    gzip_types
        text/css
        text/javascript
        text/xml
        text/plain
        application/javascript
        application/x-javascript
        application/json
        application/x-www-form-urlencoded;
}

Want to run your own?

This is base image
FROM centos:8
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
RUN dnf clean all && rm -r /var/cache/dnf  && dnf upgrade -y && dnf update -y && dnf -y install git wget curl && \
    dnf --nogpgcheck  -y install epel-release sudo 'dnf-command(config-manager)' && \
    dnf config-manager --set-enabled PowerTools && \
    dnf --nogpgcheck -y install autoconf automake libtool freetype-devel fontconfig libXft-devel libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel glib2-devel cairo-devel libunwind libicu https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/30/Everything/x86_64/os/Packages/l/libgdiplus-5.6-3.fc30.x86_64.rpm https://archive.fedoraproject.org/pub/epel/7/x86_64/Packages/c/cabextract-1.5-1.el7.x86_64.rpm xorg-x11-font-utils fontconfig https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm gssntlmssp https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm lttng-ust userspace-rcu

Install .Net Core 5.0
FROM utarn/centos8-build
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
ARG DOTNET_SDK_VERSION=5.0.100
ENV \
    # Unset ASPNETCORE_URLS from aspnet base image
    ASPNETCORE_URLS= \
    # Enable correct mode for dotnet watch (only mode supported in a container)
    DOTNET_USE_POLLING_FILE_WATCHER=true \
    # Skip extraction of XML docs - generally not useful within an image/container - helps performance
    NUGET_XMLDOC_MODE=skip \
    # PowerShell telemetry for docker image usage
    POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10

# Install .NET SDK
RUN curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-x64.tar.gz \
    && mkdir -p /usr/share/dotnet \
    && tar -ozxf dotnet.tar.gz -C /usr/share/dotnet \
    && rm dotnet.tar.gz \
    && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
    # Trigger first run experience by running arbitrary cmd
    && dotnet help


Looking for the official one?

Microsoft Repository

Tag summary

Content type

Image

Digest

Size

529.4 MB

Last updated

over 4 years ago

docker pull utarn/aspnetcore5-centos8