Giter Site home page Giter Site logo

Comments (6)

kamaln7 avatar kamaln7 commented on July 17, 2024 1

Thanks for the info @pirate. That makes sense. As for the SQLite error, that's something we're aware of and have a fix for on the way, but even with that working, the filesystem will still be ephemeral and so you wouldn't be able to run ArchiveBox properly. Also, cool project :)

from sample-dockerfile.

kamaln7 avatar kamaln7 commented on July 17, 2024

Hi @pirate,

This is very helpful feedback, thank you. I've shared this with the team and we'll update the docs to be clearer about these points. Meanwhile, I'll try to briefly answer them for you. Let me know if you have any additional questions.

  • how do you attach volumes?

Volumes are not supported at this time. You can use Spaces for storage but your app will need to know how to use an object store for files as it cannot be mounted as a filesystem directory.

  • how do you specify the source dir the docker build should take place in?

We're working on adding this option to the UI, but you can do that in the app spec. In the Settings tab, you can download your app spec, edit it, and upload the new version. Alternatively, you can use doctl to retrieve the spec (doctl apps list and doctl apps spec get <app-id>) and upload the new version (doctl apps update --spec spec.yaml <app id>).

name: app
services:
  - name: example
    dockerfile_path: Dockerfile
    source_dir: api

Both dockerfile_path and source_dir are relative to the repository root.

See Reference for App Specification for more info.

  • how do you specify a remote image on docker hub instead of building it from scratch on every deploy?

You can select a DockerHub image via the UI—see Deploy Images from Docker Hub to App Platform. In the spec, it will look like so:

name: app
services:
  - name: example
    image:
      registry: library
      registry_type: DOCKER_HUB
      repository: memcached
      tag: latest

If you're building your own image, make sure to use unique tags so that old images are not cached for longer than needed.

  • how do you specify the entrypoint and command?

If you have an entrypoint/command in your Dockerfile, you can leave the Run Command empty and they will be used. If you set a Run Command, it will override both.

  • how do you specify the ports to expose to the outside world? (especially if there are multiple ports)

Currently service component can publish one only port. Could you tell me more about your use case?

from sample-dockerfile.

pirate avatar pirate commented on July 17, 2024

Thanks for the info.

Volumes are not supported at this time

Ah thats unfortunate, that rules out my use case (and I'd guess the majority of off-the-shelf docker containers). I'll give it another try when Volumes are supported.

from sample-dockerfile.

kamaln7 avatar kamaln7 commented on July 17, 2024

@pirate Sorry, I hit enter too soon. Volumes are definitely on the roadmap but I don't have an ETA that I can share. Would you mind expanding more on your usecase? That would help us prioritize this feature.

from sample-dockerfile.

pirate avatar pirate commented on July 17, 2024

I'm trying to offer a 1-click deploy to ArchiveBox users: https://github.com/ArchiveBox/ArchiveBox

Here are my attempts at getting it working so far:

All I want is this image: archivebox/archivebox:latest deployed to a DO droplet, with /data mounted as a volume, and port 8000 exposed to the internet. Ideally something like this:

spec:
  services:
    - name: archivebox
      image: archivebox/archivebox:latest
      volumes:
        - data:/data
      ports:
        - 8000

It's a fairly standard linuxserver.io-style Docker image, it uses SQLite and the filesystem heavily for state though, so needs a writable filesystem, which doesn't seem to be supported even without a volume:

image

from sample-dockerfile.

pirate avatar pirate commented on July 17, 2024

I could live with ephemeral, it's not ideal but I'd just rsync it to s3/spaces or something every few seconds. I don't think spaces-backed volumes are necessarily ideal either due to the high latency, what I really want is a local SSD-backed volume / writable FS that's backed up to spaces periodically.

from sample-dockerfile.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.