Share data from one Kubernetes container to another inside same pod












0















I have two containers inside my Pod:




  • Container A based on my own Dockerfile. Inside this Dockerfile, there is COPY ./files /my-files command. This image is inside my GitLab Docker registry.

  • Container B based on image from hub.docker.com.


I'd like to share data from Container A that are stored inside /my-files to Container B. I thought that I need to create a volume (it's not a persisted data) inside this pod and volumeMounts to the container.



Unfortunately when I add volumeMounts to Container A with mountPath: /my-files this directory is emptied and there are no files that were added when an image was created.



What should I do to keep this data and share it with Container B.



This is part of my Deployment.yaml file:



containers:
- name: Container-A
image: "my-gitlab-registry/my-image-a-with-copied-files"
volumeMounts:
- name: shared-data
mountPath: /my-files
- name: Container-B
image: "some-public-image"
volumeMounts:
- name: shared-data
mountPath: /files-from-container-a

volumes:
- name: shared-data
emptyDir: {}









share|improve this question


















  • 1





    When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

    – superstator
    Nov 28 '18 at 0:32











  • I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

    – Marcin
    Nov 28 '18 at 10:33













  • Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

    – superstator
    Nov 28 '18 at 19:19






  • 1





    If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

    – superstator
    Nov 28 '18 at 19:20
















0















I have two containers inside my Pod:




  • Container A based on my own Dockerfile. Inside this Dockerfile, there is COPY ./files /my-files command. This image is inside my GitLab Docker registry.

  • Container B based on image from hub.docker.com.


I'd like to share data from Container A that are stored inside /my-files to Container B. I thought that I need to create a volume (it's not a persisted data) inside this pod and volumeMounts to the container.



Unfortunately when I add volumeMounts to Container A with mountPath: /my-files this directory is emptied and there are no files that were added when an image was created.



What should I do to keep this data and share it with Container B.



This is part of my Deployment.yaml file:



containers:
- name: Container-A
image: "my-gitlab-registry/my-image-a-with-copied-files"
volumeMounts:
- name: shared-data
mountPath: /my-files
- name: Container-B
image: "some-public-image"
volumeMounts:
- name: shared-data
mountPath: /files-from-container-a

volumes:
- name: shared-data
emptyDir: {}









share|improve this question


















  • 1





    When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

    – superstator
    Nov 28 '18 at 0:32











  • I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

    – Marcin
    Nov 28 '18 at 10:33













  • Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

    – superstator
    Nov 28 '18 at 19:19






  • 1





    If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

    – superstator
    Nov 28 '18 at 19:20














0












0








0








I have two containers inside my Pod:




  • Container A based on my own Dockerfile. Inside this Dockerfile, there is COPY ./files /my-files command. This image is inside my GitLab Docker registry.

  • Container B based on image from hub.docker.com.


I'd like to share data from Container A that are stored inside /my-files to Container B. I thought that I need to create a volume (it's not a persisted data) inside this pod and volumeMounts to the container.



Unfortunately when I add volumeMounts to Container A with mountPath: /my-files this directory is emptied and there are no files that were added when an image was created.



What should I do to keep this data and share it with Container B.



This is part of my Deployment.yaml file:



containers:
- name: Container-A
image: "my-gitlab-registry/my-image-a-with-copied-files"
volumeMounts:
- name: shared-data
mountPath: /my-files
- name: Container-B
image: "some-public-image"
volumeMounts:
- name: shared-data
mountPath: /files-from-container-a

volumes:
- name: shared-data
emptyDir: {}









share|improve this question














I have two containers inside my Pod:




  • Container A based on my own Dockerfile. Inside this Dockerfile, there is COPY ./files /my-files command. This image is inside my GitLab Docker registry.

  • Container B based on image from hub.docker.com.


I'd like to share data from Container A that are stored inside /my-files to Container B. I thought that I need to create a volume (it's not a persisted data) inside this pod and volumeMounts to the container.



Unfortunately when I add volumeMounts to Container A with mountPath: /my-files this directory is emptied and there are no files that were added when an image was created.



What should I do to keep this data and share it with Container B.



This is part of my Deployment.yaml file:



containers:
- name: Container-A
image: "my-gitlab-registry/my-image-a-with-copied-files"
volumeMounts:
- name: shared-data
mountPath: /my-files
- name: Container-B
image: "some-public-image"
volumeMounts:
- name: shared-data
mountPath: /files-from-container-a

volumes:
- name: shared-data
emptyDir: {}






kubernetes






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 28 '18 at 0:25









MarcinMarcin

414




414








  • 1





    When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

    – superstator
    Nov 28 '18 at 0:32











  • I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

    – Marcin
    Nov 28 '18 at 10:33













  • Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

    – superstator
    Nov 28 '18 at 19:19






  • 1





    If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

    – superstator
    Nov 28 '18 at 19:20














  • 1





    When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

    – superstator
    Nov 28 '18 at 0:32











  • I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

    – Marcin
    Nov 28 '18 at 10:33













  • Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

    – superstator
    Nov 28 '18 at 19:19






  • 1





    If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

    – superstator
    Nov 28 '18 at 19:20








1




1





When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

– superstator
Nov 28 '18 at 0:32





When you mount inside a k8s container, the mounted volume will "hide" anything that already existed in that location. What kind of data is this? It sounds like either you need to create a configmap for it, or you need to copy it into both images before creating the pod & containers.

– superstator
Nov 28 '18 at 0:32













I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

– Marcin
Nov 28 '18 at 10:33







I'm creating a PHP app using PHP-FPM and Apache. The first container is based on PHP-FPM. I copy all data of application inside /var/www/html. The second one is Apache pointing to FPM. But both containers need same files inside /var/www/html directory. It's sad, that there is no "flag" telling to keep those files and copy inside mounted volume.

– Marcin
Nov 28 '18 at 10:33















Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

– superstator
Nov 28 '18 at 19:19





Are you just wanting Apache to act as a reverse proxy for PHP-FPM? If so, the thing to do would be to use port mappings to let Apache talk to your PHP container, and not share any content directly. Your Apache container would get it's config from a configmap, and then make requests directly to your app container on some arbitrary port, like 8080.

– superstator
Nov 28 '18 at 19:19




1




1





If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

– superstator
Nov 28 '18 at 19:20





If you really need to share static content between two containers, you need to either build that content into both images (in which case they can potentially share layers behind the scenes), or store that content in some other system like an S3 bucket, and then map that into your containers via volume mounts.

– superstator
Nov 28 '18 at 19:20












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53510307%2fshare-data-from-one-kubernetes-container-to-another-inside-same-pod%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53510307%2fshare-data-from-one-kubernetes-container-to-another-inside-same-pod%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

Calculate evaluation metrics using cross_val_predict sklearn

Insert data from modal to MySQL (multiple modal on website)