diff --git a/near-rt-ric-simulator/Dockerfile b/near-rt-ric-simulator/Dockerfile
index a2ab6ab..c23f034 100644
--- a/near-rt-ric-simulator/Dockerfile
+++ b/near-rt-ric-simulator/Dockerfile
@@ -1,5 +1,5 @@
 #  ============LICENSE_START===============================================
-#  Copyright (C) 2021 Nordix Foundation. All rights reserved.
+#  Copyright (C) 2021-2023 Nordix Foundation. All rights reserved.
 #  ========================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
@@ -15,12 +15,11 @@
 #  ============LICENSE_END=================================================
 #
 
-FROM python:3.8-slim-buster
+FROM alpine:3.17.3
 
-RUN pip install connexion[swagger-ui]
+RUN apk add --update --no-cache python3 py3-pip nginx nginx-mod-http-lua
 
-#install nginx and curl
-RUN apt-get update && apt-get install -y nginx=1.14.* nginx-extras curl
+RUN pip3 install connexion[swagger-ui]
 
 WORKDIR /usr/src/app
 
@@ -32,12 +31,12 @@
 ARG user=nonrtric
 ARG group=nonrtric
 
-RUN groupadd $user && \
-    useradd -r -g $group $user
+RUN addgroup $user && \
+    adduser -S -G $group $user
 RUN chown -R $user:$group /usr/src/app
 RUN chown -R $user:$group /var/log/nginx
 RUN chown -R $user:$group /var/lib/nginx
-RUN chown -R $user:$group /etc/nginx/conf.d
+
 RUN touch /var/run/nginx.pid
 RUN chown -R $user:$group /var/run/nginx.pid
 
@@ -45,3 +44,4 @@
 
 RUN chmod +x src/start.sh
 CMD src/start.sh ${A1_VERSION}
+
diff --git a/near-rt-ric-simulator/nginx.conf b/near-rt-ric-simulator/nginx.conf
index 7b3e620..8ec93b3 100644
--- a/near-rt-ric-simulator/nginx.conf
+++ b/near-rt-ric-simulator/nginx.conf
@@ -1,13 +1,30 @@
-# user www-data;
+#  ============LICENSE_START===============================================
+#  Copyright (C) 2023 Nordix Foundation. All rights reserved.
+#  ========================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#  ============LICENSE_END=================================================
+#
+
 worker_processes auto;
 pid /run/nginx.pid;
 include /etc/nginx/modules-enabled/*.conf;
+load_module /usr/lib/nginx/modules/ndk_http_module.so;
+load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;
 
 env ALLOW_HTTP;
 
 events {
     worker_connections 768;
-    # multi_accept on;
 }
 
 http {
@@ -21,23 +38,20 @@
     tcp_nodelay on;
     keepalive_timeout 65;
     types_hash_max_size 2048;
-    # server_tokens off;
-
-    # server_names_hash_bucket_size 64;
-    # server_name_in_redirect off;
 
     include /etc/nginx/mime.types;
     default_type application/octet-stream;
 
-    perl_set $allow_http 'sub { return $ENV{"ALLOW_HTTP"}; }';
+
 
     server { # simple reverse-proxy
-	listen      8085;
+        set_by_lua $allow_http 'return os.getenv("ALLOW_HTTP")';
+        listen      8085;
         listen      [::]:8085;
         server_name  localhost;
-	if ($allow_http != true) {
-	    return 444;
-	}
+        if ($allow_http != true) {
+            return 444;
+        }
 
 	# serve dynamic requests
         location / {
@@ -84,10 +98,4 @@
 
     gzip on;
 
-    # gzip_vary on;
-    # gzip_proxied any;
-    # gzip_comp_level 6;
-    # gzip_buffers 16 8k;
-    # gzip_http_version 1.1;
-    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
-}
\ No newline at end of file
+}
diff --git a/near-rt-ric-simulator/src/start.sh b/near-rt-ric-simulator/src/start.sh
index feb5a1d..8518541 100755
--- a/near-rt-ric-simulator/src/start.sh
+++ b/near-rt-ric-simulator/src/start.sh
@@ -1,7 +1,7 @@
-#!/bin/bash
+#!/bin/sh
 
 #  ============LICENSE_START===============================================
-#  Copyright (C) 2020 Nordix Foundation. All rights reserved.
+#  Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
 #  ========================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
