Dynamic Languages (Node.JS, Python, PHP, C/C++, Webserver Agent)

Showing results for 
Search instead for 
Did you mean: 

Golang SDK - libappdynamics.so: cannot open shared object file


 I've build a simple Golang application and have packaged it inside Docker, building off of the image '



When I run the built app I get this error:


/usr/local/bin # ./golang-example-app
./golang-example-app: error while loading shared libraries: libappdynamics.so: cannot open shared object file: No such file or directory


Trying to fix it, I copied the AppDynamics Golang SDK folder underneath /usr/local/bin:


/usr/local/bin # ls -al
total 2432
drwxr-xr-x 4 root root 4096 Nov 22 15:03 .
drwxr-xr-x 6 root root 4096 Nov 22 15:03 ..
drwxr-xr-x 3 root root 4096 Nov 22 15:03 appdynamics
-rwxr-xr-x 1 root root 2473864 Nov 22 05:19 golang-example-app
-rwxr-xr-x 1 root root 238 Nov 21 17:47 run.sh
/usr/local/bin # ls -l appdynamics/
total 544
-rw-r--r-- 1 root root 1917 Nov 22 14:58 README.md
-rw-r--r-- 1 root root 91 Nov 22 14:58 VERSION
-rw-r--r-- 1 root root 22393 Nov 22 14:58 appdynamics.go
-rw-r--r-- 1 root root 279504 Nov 22 14:58 ca-bundle.crt
-rw-r--r-- 1 root root 236061 Nov 22 14:58 ca-bundle.crt.moveaway
drwxr-xr-x 3 root root 4096 Nov 22 14:58 sdk_lib



I still get this error when running.


Do I need to "install" the 'libappdynamics.so' file in a certain location so it can be found by the Golang app?

Golang SDK - libappdynamics.so: cannot open shared object file
AppDynamics Team

Hi David,


You don't want to have appdynamics/ directory in /usr/local/bin/.


Try moving your golang-example-app in to the appdynamics/ directory and running it there.


In your specific case:


mv -v /usr/local/bin/golang-example-app /usr/local/bin/appdynamics/;
mv -v /usr/local/bin/appdynamics /;  # keep bin/ tidy.
cd /appdynamics; ./golang-example-app;


For additional information see: https://golang.org/cmd/cgo/


If anyone still faces the same issue, for golang-sdk-x64-linux- which I am using now, I managed to to fix my multi-stage Dockerfile as follows:


# stage 2 - build deployment
# libappdynamics.so required version of glibc shared libraries are not found in alpine,
therefore follow development environment, use ubuntu
FROM ubuntu:18.04

RUN apt-get update \
    && apt-get install -y wget \
    && rm -rf /var/lib/apt/lists/*


    wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/g... && \
    chmod +x /bin/grpc_health_probe



ENTRYPOINT ["/<yourExecutable>"]