# Using javaagent in Docker container

**URL:** <https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223>\
**Category:** APM\
**Tags:** docker, java\
**Created:** [May 5, 2021, 8:30pm UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223 "2021-05-05T20:30:33Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Henk\_Stobbe](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/henk_stobbe/32/88015_2.png) [@Henk\_Stobbe](https://discuss.elastic.co/u/Henk_Stobbe)\
**Post date:** [May 5, 2021, 8:30pm UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/1 "2021-05-05T20:30:33Z")

</div>

Hello,

Using docker compose, I have a added a volume (containing the agent jar) and I added the java opts to point to this jar.  
Sorry to say that when the java application gets started the volume is not yet available and the agent is not loaded.  
Does anybody have a suggestion how to add the java agent to a existing container?

KR Henk

(I am trying to run the microservices-demo/sockshop demo with the elastic api agent)

---

<div class="post-metadata">

**Author:** ![nugusbayevkk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nugusbayevkk/32/126683_2.png) [@nugusbayevkk](https://discuss.elastic.co/u/nugusbayevkk)\
**Post date:** [May 6, 2021, 7:15pm UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/2 "2021-05-06T19:15:20Z")

</div>

Hi @Henk_Stobbe , can you share your docker-compose file?

---

<div class="post-metadata">

**Author:** ![Henk\_Stobbe](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/henk_stobbe/32/88015_2.png) [@Henk\_Stobbe](https://discuss.elastic.co/u/Henk_Stobbe)\
**Post date:** [May 7, 2021, 11:39am UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/3 "2021-05-07T11:39:31Z")

</div>

Hello,

FYI also added the agent jar to the container, but seems I get same result. When starting the app with agent by logging in to the running container works like a charm.

I will add compose in next reply,

KR Henk

---

<div class="post-metadata">

**Author:** ![Henk\_Stobbe](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/henk_stobbe/32/88015_2.png) [@Henk\_Stobbe](https://discuss.elastic.co/u/Henk_Stobbe)\
**Post date:** [May 7, 2021, 11:44am UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/4 "2021-05-07T11:44:43Z")

</div>

version: '2'

services:  
orders:  
image: weaveworksdemos/orders:agent  
hostname: orders  
restart: always  
user: "root:root"  
cap\_drop:  
- all  
cap\_add:  
- NET\_BIND\_SERVICE  
read\_only: false  
tmpfs:  
- /tmp:rw,noexec,nosuid  
volumes:  
- c:/users/nl19867:/volume  
environment:  
- JAVA\_OPTS=-Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom, javaagent:/volume/agent.jar

---

<div class="post-metadata">

**Author:** ![Henk\_Stobbe](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/henk_stobbe/32/88015_2.png) [@Henk\_Stobbe](https://discuss.elastic.co/u/Henk_Stobbe)\
**Post date:** [May 7, 2021, 11:46am UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/5 "2021-05-07T11:46:56Z")

</div>

Hello Please be aware I am running docker on windows 10!!! I already tried to chown:chgrp but that does not work!

---

<div class="post-metadata">

**Author:** ![nugusbayevkk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nugusbayevkk/32/126683_2.png) [@nugusbayevkk](https://discuss.elastic.co/u/nugusbayevkk)\
**Post date:** [May 10, 2021, 7:28pm UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/6 "2021-05-10T19:28:12Z")

</div>

Hi @Henk_Stobbe ,  
I added some instructions to existing orders Dockerfile:

```auto
FROM weaveworksdemos/msd-java:jre-latest

WORKDIR /usr/src/app
COPY orders.jar ./app.jar
COPY elastic-apm-agent-1.22.0 /usr/src/app/elastic-apm-agent.jar

RUN	chown -R ${SERVICE_USER}:${SERVICE_GROUP} ./app.jar

USER ${SERVICE_USER}

ENTRYPOINT ["/usr/local/bin/java.sh","-jar","./app.jar", "--port=80"]

```

before you need, package orders via `mvn clean package`  
after I build docker image:

```auto
orders\docker\orders>docker build -t orders:elastic .

```

and in docker-compose.yml modified JAVA\_OPTS with elastic apm agent java conigurations:

```auto
  orders:
    image: orders:elastic
    hostname: orders
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    environment:
      - JAVA_OPTS=-javaagent:/usr/src/app/elastic-apm-agent.jar -Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom -Dspring.zipkin.enabled=false -Delastic.apm.service=orders -Delastic.apm.server_url=http://apmserver:8200 -Delastic.apm.log_level=DEBUG
    ports:
      - "8082:80"

```

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/a/3/a372533eea3f5a812e8acb8a0a146a88fc53308a.png)

---

<div class="post-metadata">

**Author:** ![nugusbayevkk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nugusbayevkk/32/126683_2.png) [@nugusbayevkk](https://discuss.elastic.co/u/nugusbayevkk)\
**Post date:** [May 10, 2021, 7:41pm UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/7 "2021-05-10T19:41:05Z")

</div>

or, @Henk_Stobbe  
you can add volume with elastic-apm-agent and run with:

```auto
  orders-compose:
    image: weaveworksdemos/orders:0.4.7
    hostname: orders
    restart: always
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid
    volumes:
      - ./volume/elastic-apm-agent-1.22.0.jar:/usr/src/app/elastic-apm-agent-1.22.0.jar
    environment:
      - JAVA_OPTS=-javaagent:/usr/src/app/elastic-apm-agent-1.22.0.jar -Xms64m -Xmx128m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom -Dspring.zipkin.enabled=false -Delastic.apm.service_name=orders_volume -Delastic.apm.server_url=http://apmserver:8200 -Delastic.apm.log_level=DEBUG
    ports:
      - "8083:80"

```

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/a/1/a1294a8b7338c65c5f391a4e2f430f53da9b65f0.png)

---

<div class="post-metadata">

**Author:** ![Henk\_Stobbe](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/henk_stobbe/32/88015_2.png) [@Henk\_Stobbe](https://discuss.elastic.co/u/Henk_Stobbe)\
**Post date:** [May 15, 2021, 9:08am UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/8 "2021-05-15T09:08:07Z")

</div>

Hello Kanagat,

Thx for your answers!

KR Henk

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 5, 2021, 5:08am UTC](https://discuss.elastic.co/t/using-javaagent-in-docker-container/272223/9 "2021-06-05T05:08:41Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
